So, it free, it has full FOSS tooling. What's the problem?
As someone who is coming from a very FOSS world and trying to learn C#, I have to counter that no, C# does not have a really good open source ecosystem. Mono works, MonoStudio is pretty decent, but it lacks all of Windows, and there isn't much to target that is not Windows if you are doing anything that is not a webapp.
Objective-C also has a pretty decent open source toolkit in GCC, but a toolkit that lacks Cocoa is like trying to eat dinner but forgetting the food. Mono is a great toolkit, but it's missing 80% of the libraries that makes C# an easy language to use. You've got your forks and spoons, but you've got nothing to eat.
Note that I'm not complaining against C#. I'm really liking the language and everything I can do when I'm in a Windows or Windows Phone environment. I'm arguing that C# is not as portable, in practice, as everyone continually claims.
Furthermore, much of the documentation assumes a Windows environment. Getting a development environment set up around Mono has been possible but challenging.
F# and Mono are neat, but .NET has a long way to go before it becomes as cross-platform as Java.
With that said, I know a lot of devs who hate almost everything about MS that actually do like C#.
Mono is a great attempt at making the use of the languages acceptable to me, but unfortunately it is still a second class citizen. It works okay, I guess, but .NET was created from the ground up as Windows infrastructure.
The same could be said for Clojure on the JVM...it works great if you are using pure Clojure, but the moment you try to use Java libraries, all of a sudden everything becomes messy and loses its idiomatic nature and all the elegance that goes with it (like, for example, the pervasiveness of mutating methods in Java but the almost religious avoidance of mutability in Clojure).