Why? Have you tried writing a dbus-aware program in C, and then in C#? There is a world of difference, in favor of the C# version.
But the problem has nothing to do with C#'s technical merits.
This irrational fear of all-things-Microsoft is out of control. There are good engineers at Microsoft, and some of them are even free software proponents.
The potential problem isn't the engineers, it's the lawyers.
Regardless all that, Mono is a GPL language, free in every sense.
No, it isn't. It's covered by patents.
The basic issue is: MS created a language, patented parts of it, but also said "We're not going to sue you for implementing this. Though we reserve the right to change our mind at any time". They also created a standard that might be safe, doesn't cover all that much, so most useful programs will go beyond that into the less certain patented territory.
You can write GPL/whatever licensed code all you want, if somebody has a patent on your algorithm that won't save you from the trouble.
That is the problem. It's not about C#'s technical merits, or MS's engineers' abilities, it's about what could possibly happen if MS decides to change their mind. And there's ample evidence of that getting involved with Microsoft too deeply is almost a guarantee for getting screwed.