ネイティブコードじゃない事は、速度的にはデメリットにならんのよ。
JITで実行するCPUに合わせた最適化が出来るから、下手にコンパイル時点で
ネイティブコードにするより、実行速度は上がる事が期待できる。

C#がC++に速度的に負けるのは、配列の範囲チェック等が入るから。