I can accomplish more work in fewer lines of code with C#.
Reasons I prefer C#:
? Proper support for properties: public int foo { get; set; } vs getFoo() setFoo()
? Operator overloading: foo == "foo" works as expected.
? Generics work with primitive types: List
? DateTime and Timespan just work (mostly fix in Java 8, I think)
? Partial classes.
? Clean separation of UI generating code from codebehind logic in winforms and web apps.
? LINQ + Extension Methods + Lambda expressions + closures. This is the #1 reason right here. This was partially fixed in Java 8, but they still have a long way to go.
Because project requirements and .NET is just better than what Java offers. Java is great if you don't care about security or stability. C# is still better than Java regardless of what Java 8 does to close the gap. Because not everyone needs to have multiplatform code developed, and some people just prefer Microsoft's better tools over Oracle's crap.