In all fairness, the JVM is insanely optimized, and .NET and the JVM are neck and neck, but language feature wise C# felt nicer to work with. I guess its a blessing in disguise, it allowed C# to gain a lot of usage. :)
I agree about the JVM. I think the big difference between C# and Java is just that C# has allowed breaking changes, and so has improved various things at the language level. Java hasn't really.