In my experience C# is just a better language than Java (which isn't suprising, as C# was made just to be a better Java clone). Things like
* value types (instead of boxing)
* no type erasure
* runtime exceptions
* dynamic/duck typing
* operator overloading (try working with arbitrary length decimals in Java)
just solve a lot of the small headaches of everyday programming.
That said, I still prefer Java because of the ecosystem and newer JVM languages like Clojure and Scala might just make Java irrelevant.
I've worked with C# and .NET for years. I agree that C# is a great language. I prefer working with the JVM and Linux ecosystems, though. On my latest project I decided to use Scala for the backend. I have access to a wealth of great libraries and services, and I actually prefer working with Scala than with C#.
That said, I still prefer Java because of the ecosystem and newer JVM languages like Clojure and Scala might just make Java irrelevant.