There is no reason to bash C#, but there is still reasons to be on the fence about it.
The runtimes and libraries for non windows platforms are still behind, and are quite new. Additionally while there has been efforts to grow the community and get outside involvement, it is still obvious that Microsoft is the big player, and without their involvement the community might shrink to a fraction of its size.
Microsoft itself complicates matters as for some people it takes a lot to be convinced that "new Microsoft" isn't just old Microsoft in sheeps clothing, and its all a ploy to get people onto their platform so they can lock you in. I have started to be convinced that microsoft has actually turned a leaf and is actually working to build a community and genuinely will support other platforms, but I am always going to be a little cautious... call it post traumatic stress from the early 2000s.
Finally I don't see a reasons to rush to build in C#. It seems a perfectly decent language, but without being experienced in the language is there a problem domain (outside rich client windows apps) where the language is significantly better then other choices?
I don't think C# should be bashed, but I also think it still needs to prove itself to the non windows platform and open source developers.