Theres no major speed difference between C++ and C#, though you might notice C# programs take a little longer to get started (also DGDK.NET is slower than DGDK due to the interop).
The code above however is a little biased at C++ being the shorter.
The C# version does more than the C++ version - it references a library that is not used, takes a command line and also defines a namespace, a more correct correct C# equivalent would be:
using System;
class MyProgram
{
static void Main()
{
Console.WriteLine("Hello World!");
}
}
or vice versa in C++ (no one would ever seriously use this method though!):
#include <iostream>
#pragma comment (linker, "/SUBSYSTEM:CONSOLE")
#pragma comment (linker, "/ENTRY:main_namespace::main")
namespace main_namespace
{
void main(char** args)
{
std::cout << "Hello World!";
}
};
As for which is easier to learn, that depends on your personal preference, I would't say either is harder, they are both simple and confusing in their own ways. C++ is more linear and structured, C# is better arranged into classes and objects allowing the IDE to speed up development considerably. You could also try Visual Basic, which isn't that different from C#, but takes from the more human-readable BASIC syntax.
If in doubt use C++ - you can always use C++.NET if you change your mind then!