Языки C++ и C# отличаются идеологией построения программ и назначением. На С++ лучше писать системные или требующие повышенного быстродействия или прямого доступа к памяти и/или аппаратуре программы (драйвера, утилиты, прошивки и т.п.), а на C# удобнее писать прикладные программы. Вопрос "кто из них лучше или хуже" здесь неуместен, так как это разные инструменты для решения разных задач, как молотки чеканщика и каменщика.
На С++ можно писать безо всяких фреймворков, используя только стандартные библиотеки, а на C# без DotNetFrameWork (.NET) писать невозможно в принципе.
Поэтому какой язык выбрать зависит от решаемой задачи.
Так-то драйверы на C++ пишут чуть реже, чем совсем никогда. Из семейства C-подобных языков драйверы пишут лишь на простом C.