Two big reasons:
C++ has to go and #include
and parse all the header files (which means reading text files and interpreting them -- including templates -- and then expanding them right into your code) whereas C# uses pre-compiled information in the assembly DLLs.
The potential C++ optimizations are way more far-reaching than the C# optimizations; they easily blow C# out of the water. The C# compiler never inlines a function call (that's the Just-In-Time compiler's job to do in the CLR), but C++ compilers frequently do that, and much more. The C++ compiler also has to do the JIT's compiler for the entire program at compile time (and then some!), so it's definitely slower.
I'd say that the biggest culprit is optimizations -- try turning off all optimizations in your compiler, and noticing the speedup.