microsoft has several open source projects (and have for a while). they're also in the business of making money and open source isnt a good model for "average" propritary software (which they have a lot of).
it really boils down to the point of what is open source used for? is it used to run your website because you cant afford the time or cost of a purchased solution, or is it because you want to learn how to do this or that, or is it something else. a lot of open source software is public because it is good and the author felt that it should be shared with the world so people dont go re-inventing the wheel. IMO microsoft has never invented a wheel to begin with, so whats the point of publishing or being involved with that movement? actually I cant say that they havent invented a wheel, because they have, just not in the way most would expect it. their wheel is people buying their software. they'll do whatever it takes to pimp their goods. open source (on their technologies) is a good means of promoting their products.
If you were to take the volume of open source projects built with C, C++, PHP or perl, and suddenly move them to C#, you would need windows to run them (or mono / portable .net... but lets face it, microsoft's implementation of .net is far better in most aspects). That is serious revenue for them, and thats the motivation behind the current movement. It is not the genuine feeling that the world can benefit from what they're offering, its that they have a lot to gain by driving developers to their brand of wonderful. They're building a community of skilled developers who develop on their technology, and they're making their development technology easy and powerful to use. it would be like apache costing money, PHP being free and all the projects that run on apache/php being open source and free. that would make the apache foundation quite a bit of money.
in the end, with microsoft, it will always be about the money. look at how badly they hate google.