Плюсы компилятся в асамблер, который разный под разные ситуации
Шарп в IL код который одинаковый и его читают/интерпретируют установленные CLR.
Из-за вот такой прослойки байт кода, его проще декомпильнуть. Для тех кто боится, придумали обусфикацию кода и вроде какую-то магию компила в натив, что есть в юньки и тп. Название не помню.