a.) 'Planet Microsoft'. By this, I mean the gravitational pull all MSFT products seem to exert on one another, apparently by design and decree of the marketing department. With open-source stuff, it seems like I can mix-n-match components pretty freely. I can use Django on BSD, or Linux. With MySQL, or PostgreSQL. I can use its built-in templating, or not. With MSFT, it seems like I'd better be using Win2K3+SQL2K5+IIS6+ASP.NET or I'm taking my life in my hands. (And, when upgrade time comes, I better upgrade 'em all, or I'll have problems. And I better upgrade every system or they won't talk to each other.) Presumably MSFT could make its products more standalone, but prefers not to.
b.) Inevitable screwage. I believe MSFT's goal is to establish itself as an unavoidable presence in the IT business (ala the bad old days of DOS) and then use that position to demand money. For the moment, thanks to open standards, they can't do that. I'm not interested in helping them change that by using/endorsing their technology stack.
c.) MSFT MVPs. More generally, MSFT people. With all due respect to any Planet Microsoft hackers hereabouts, there is an enormous lack of perspective found in people who've only used MSFT tools; they tend to think 'One Microsoft Way' is a viable approach to building code, and not just an address. If you're reading this, and that offends you, I hereby acknowledge that there are exceptions, and you're probably one. I don't want to flame anyone, I just want to share an honest reason why I'd prefer to avoid the MSFT stack.