Google and Microsoft both do a great job shipping certain kinds of products. The teams that work on these products have influence, autonomy and
ability (without middle management or PM interference) to ship products.
For Microsoft it's Office tools, development tools and operating systems. We may not like those products, nor wish to work on those teams irrespective (I'm a UNIX hacker, there's no way I'd be happy at Microsoft, lest they bring back Xenix), but I'd imagine those teams are great to work on.
For Google, it's obviously search, infrastructure (incredible competitive advantage for them), advertising system and other things Internet or networking (including Android, Chrome etc...). It's not their office or enterprise offerings (Google docs are useful, but they're popular because they're only game in town so far).
I wouldn't join Microsoft to work on online services or join Google to work on desktop or enterprise products (with exception of Chromium). I would imagine I'd be sidelined by management or technical leadership who is just not used to that particular type of software (e.g., if you make shrink wrap office software you'd be hesitant to adopt methodologies that involve daily pushes of code or see the value of making services highly available and fault tolerant).
Of course, I am open to hear arguments to the contrary (do you work on online services at Microsoft and find that you're able to "get things done" without interference? Ditto for desktop software at Google).