Let's say we have the numeral "12,345". Why is it pronounced as "twelve thousand three hundred and forty five" as opposed to "twelve thousands three hundreds and forty five". Are 's's omitted while pronouncing numerals to make the whole thing more succinct and easier to pronounce?
Because in English "twelve thousand" is not interpreted as 12 occurrences of 1000, as in 12 cars, but rather as one occurrence of 12000. Why it's like this, is a matter of speculation.
Languages are different and I guess some languages view 200 as a plural, as two occurrences of 100. English and Dutch do not, and French, as 200_success points out, swings both ways: 200 being deux cents, but 201 being deux cent un.
In English words are pluralized only if they are used as nouns, so if we pluralize a number, we treat it like a noun:
My telephone number contains three fours.
Thus if you say:
twelve thousands, three hundreds, and forty-five apples
this would mean you have only 45 apples, and that you also have 12 thousands, and 3 hundreds. Of course, this wouldn't make sense, because how can you "have" a number like a thousand?
So, if we are using a number as a quantifier, not as a noun, we don't pluralize it.
Another way to look at this is by building up the phrase from smaller parts. First, let's multiply the number of things we have. Compare:
an [apple] (singular)
twelve [apples] (plural)
a [thousand apples] (already plural)
twelve [thousand apples] (still plural)
Next, let's add numbers of things we have. Compare:
red apples, green apples, and yellow apples
red, green, and yellow apples
twelve thousand apples, three hundred apples, and forty-five apples
twelve thousand, three hundred, and forty-five apples
There is not necessarily a logical grammatical justification. In the case of million, usage patterns have shifted.
"Two millions" vs. "Two million"
According to Google Ngram, "two millions" has long been the standard expression. However, starting around 1850, its usage declined while "two million" rose in popularity. Around 1920, "two million" became the new norm, and today "two millions" is rarely used.
"Two thousands", "Two hundreds"
In contrast, neither "two thousands" nor "two hundreds" has ever been accepted usage.
If I had to speculate on the reason for the difference, it is probably because million has Latin origins, whereas hundred and thousand have Germanic origins. Therefore, the Old English-based inflection rules have always applied to hundred and thousand, but the French-based rules for million have only recently started giving way.