.NET takes up hundreds. (And, of course, it imposes a speed penalty just like every interpreted language ever has done - and it may seem like nothing much on your 2GHz i5, but it'll add up pretty damn quick on even a 1GHz G4 system, let alone anything slower.)
It's not interpreted, it's just in time compiled. You can even pre-compile it on desktop/server operating systems.
The code generation isn't the problem, it's the bad code that gets through because the bar has been lowered & made it easier for rubbish programmers to get jobs.
Good algorithms in C# aren't slow. You can do good things on a 600mhz ARM processor for instance (and I have).