These days it's a matter of preference as to which abbreviation to use. You'll see different people and different firms using either/or. (And a lot of people are now using "k" for thousand and "M" for million.)
If we want to get even wonkier, we could note that the English word "million" derives from the French word "mille," meaning "thousand." ("Mille" derives from the Latin, and the original Latin denotation is used to mean "thousand" in familiar words like "millennium," "millisecond," and "millipede.") The word "million" was originally invented to mean "a great thousand," or "a thousand thousand."
It's possible the M's in the financial notation system are not actually Roman numerals, so much as abbreviations of the word "mille" (or some equivalent thereof).
Those are the SI prefixes after all. :)
As best I can tell, it comes from the fixed-income markets, where MM/MMM/MMMM have been used for many decades. This convention is not universal in finance--you often see monetary policy news using M/B/T instead. And applications not targeted specifically at finance professionals often use M/B/T (e.g. Google/Yahoo Finance). The most widely-used finance application after Excel is probably the Bloomberg terminal, which uses MM/MMM/MMMM for all asset classes (n.b. Bloomberg originally was most focused on bonds, so of course they adopted that convention).
Once you have arrived in the present situation, where M can mean either thousands (to the weird bond people) or millions (to laypeople), you realize that MM is understood as millions everywhere, if not right away. That's better than ambiguity. And B for billions is a little wonky anyway, because not every language calls it a billion (the Dutch, French, and Polish all start their "billions" with an M).
©MMXIV