I can't speak for Microsoft, but I can speak for my company -- we're about 100 people, 40 engineers, of which 5 are H1-Bs. I make sure our H1-B employees are paid exactly what they would be paid if they were US citizens, I can promise you that if a printout of our salaries was accidentally left on the printer and all engineers could see everyone's salary, they would find that we are paying everyone relative to their value contributed to the company and not their visa status.
I'll also point out that there are laws that specifically state that we must adhere to that practice of fair pay, though I'd do it anyway because it's the right thing to do. We hire H1-B employees because we can't find US citizen programmers that are good enough and wiling to come here -- there is intense competition here in the Valley.
Oh, and another thing: H1-Bs are not indentured servants. We hire H1-B engineers from other companies, and unfortunately, H1-B engineers sometimes leave us for other opportunities. It takes me just 2-3 weeks and about $4000 to switch an H1-B sponsorship from the current employer to us.