MS doesn't really make money off C# or .Net directly, they make money off the windows licenses you need to run the resulting code.
Open C#/.Net = stronger, longer lasting community / free improvements = more users = more licenses.
It also has other side effects like fostering [more] open source frameworks/plugins for their platform, which again, strengthens their position.