To get a fair comparison I think something like the following should be suitable:
#include <sys/time.h>
#include <vector>
#include <iostream>
#include <algorithm>
#include <numeric>
int main()
{
  static size_t const size = 7e6;
  timeval start, end;
  int sum;
  {
    gettimeofday(&start, 0);
    std::vector<int> v(size, 1);
    sum = std::accumulate(v.begin(), v.end(), 0);
    gettimeofday(&end, 0);
    std::cout << "= vector =" << std::endl
          << "(" << end.tv_sec - start.tv_sec
          << " s, " << end.tv_usec - start.tv_usec
          << " us)" << std::endl
          << "sum = " << sum << std::endl << std::endl;
  }
  {
    gettimeofday(&start, 0);
    int * const arr =  new int[size];
    std::fill(arr, arr + size, 1);
    sum = std::accumulate(arr, arr + size, 0);
    delete [] arr;
    gettimeofday(&end, 0);
    std::cout << "= Simple array =" << std::endl
          << "(" << end.tv_sec - start.tv_sec
          << " s, " << end.tv_usec - start.tv_usec
          << " us)" << std::endl
          << "sum = " << sum << std::endl << std::endl;
  }
}
In both cases, dynamic allocation and deallocation is performed, as well as accesses to elements.
On my Linux box:
$ g++ -O2 foo.cpp 
$ ./a.out 
= vector =
(0 s, 62820 us)
sum = 7000000
= Simple array =
(0 s, 70012 us)
sum = 7000000
The std::vector<> case is consistently faster, albeit not by much.  The point is that std::vector<> can be just as fast as a simple array if your code is structured appropriately.
On a related note switching off optimization makes a huge difference in this case:
$ g++ foo.cpp 
$ ./a.out 
= vector =
(0 s, 167749 us)
sum = 7000000
= Simple array =
(0 s, 83701 us)
sum = 7000000
Many of the optimization assertions made by folks like Neil and jalf are entirely correct.
HTH!