Nun, Peter, der Hauptgrund ist, dass C++ plattformunabhängig ist, während C# es trotz Mono nicht im eigentlichen Sinne ist (ich glaube nicht, dass man Mono C# auf den meisten Handys, dem Nintendo DS oder der Playstation3 ausführen kann).
Wie auch immer, die meisten dieser Engines unterstützen DirectX und OpenGL und/oder Software-Renderer, sie sind also von Grund auf so konzipiert, dass sie unabhängig sind. Aber wie bei jedem agnostischen System, erfordert dies eine Menge Aufwand und Ressourcen.
Nach dem, was du sagst, ist deine Engine C# + DirectX, was bedeutet, dass deine Engine im Moment auf PC, Xbox, Zune und einigen Windows-Handys laufen kann. Um ehrlich zu sein, ist das keine schlechte Auswahl an Plattformen. Wenn Sie also mit diesem Grad an Freiheit zufrieden sind und C# gegenüber C++ bevorzugen, können Sie genauso gut bei dem bleiben, was Sie haben, und die Zeit damit verbringen, Ihre Engine zu verbessern. Wenn Sie Ihre Engine jedoch auf einer anderen Plattform als Microsoft betreiben wollen, müssen Sie irgendwann den Sprung zu C/C++ machen.
Um eine Vorstellung davon zu bekommen, wovon ich spreche, unterstützt die Engine meines Teams Xbox, PS3, Wii, PSP, PC und möglicherweise auch andere Plattformen, wenn wir uns die Mühe machen, aber wir haben 15 Vollzeit-Ingenieure, die daran arbeiten, also... Sie sehen, es ist ein großer Aufwand. Wenn Sie so etwas für ein kostenloses Projekt benötigen und C++ kennen, können Sie eine der vielen Open-Source-Engines wie Ogre oder Irrlicht ausprobieren, die es gibt.