Now we're blaming the operating system? As if Microsoft coded Windows specifically to slow down anything that isn't .NET.
They didn't have to. .NET is considered a first-class citizen in Windows. It's even installed directly in the C:\Windows path. Perhaps more significant than that though is that it's developed by the same company that develops the operating system, meaning that they are free and likely to take advantage of intimate knowledge of the system and use lower-level access to the system APIs to achieve their goals.
For example, WinForms is effectively a wrapper over the Windows API (i.e., not really portable at all). Java, on the other hand, had a goal of being portable from day one, so I think that more effort is put into developing platform independence (something Microsoft doesn't really want and settles for as a compromise), which often means sacrificing performance. I don't know of any Java frameworks that use the native Windows GUI, but then I'm not a Java programmer so they might well exist.
That's just one example though. It's likely that .NET takes great advantage of its heritage on the Microsoft platforms, which is something that Java can't possibly do to the same degree. Everybody knows that it isn't uncommon for Microsoft to not document or to poorly document parts of the API. It's perfectly reasonable to assume that their .NET implementation has lower-level access than Java does.
Where does Google make extensive use of Java? With Android? That's hardly relevant, because they're using a totally different runtime.
I don't j0rb at Google so I don't know for sure, but I definitely get the impression that they use a lot of Java. What I do know:
The Google Tech. Talks that I've seen on YouTube always seem to have some mention of Java as an unofficial use case.
Google apparently uses Jetty, which is a Java Web server. I don't know if any or all of the actual Google "Services" are running Jetty, but I suspect that they might be. I think that Java plays an intricate role in their ability to scale as massively as they do, but again I don't really know for sure what they do behind the scenes. I imagine there is also some native code where it counts.
Of course, there's Android, which is entirely built on the Java platform. Again, I think the reason for this is that they are already intimately familiar with it, and it has a number of advantages when you want code to be easily portable across hardware and OS releases.
I feel that .NET does a much better job than Java. Sure, it doesn't have official Linux support, but mono is very well done.
I like C#, the language, but I am regularly bitten by little or no documentation for parts of .NET, or at the very least hard to find documentation, and the ecosystem around .NET isn't very helpful. Maybe it's because I don't get certified on every namespace before using it , but I seem to encounter very obscure errors in every major library that I use in .NET, and they usually don't have workarounds or are very difficult to workaround or resolve. The core components in .NET are rather well put together, but the further you stray from there the more of a mess it becomes. There's a lot of redundancy that just doesn't make sense. It seems clear to me that departments within the .NET development teams don't seem to coordinate their efforts well. In any case, I'm not impressed with the APIs that I've used.
Java is basically C# without a few syntactic sugar features that I can live without. And it's actually considered free by the Free Software Foundation (though it took its timing getting there), which is a big thing if you care about software freedoms. I doubt that the standard framework is any better than .NET, but I doubt it's any worse either. Just different.