Wikipedia, which seems to cover every imaginable subject, answers the question under lead-acid battery:
Corrosion on the positive terminal is caused by electrolysis, due to a mismatch of metal alloys used in the manufacture of the battery terminal and cable connector. White corrosion is usually lead or zinc sulfate crystals. Aluminum connectors corrode to aluminum sulfate. Copper connectors produce blue and white corrosion crystals. Corrosion of a battery’s terminals can be reduced by coating the terminals with petroleum jelly or a commercially available product made for the purpose.[38]
—————
But here’s a completely different description from StackExchange:
Corrosion on the terminals is due to hydrogen gas being released from the acid in the battery. It mixes with other things in the atmosphere under the hood and produces the corrosion you see on the terminals. Generally, if the corrosion is occurring on the negative terminal, your system is probably undercharging. If on the positive side, it is probably overcharging. Most often it will be seen on the negative side because the battery is usually in an undercharged situation. This is just the nature of the beast, I’m afraid.
...
Your main objective is to keep the lead, escaped hydrogen gas, and oxygen from mixing which forms the corrosion you see after a period of time. Over time the grease will break down and corrosion may start…
—————
I found a site called Benign Blog that offers this:
In case of sealed lead acid battery (also known as SLA battery or dry battery), corrosion happens when electrolyte makes its way out to battery terminals through any leaks or joints. In case of flooded lead acid batteries (wet batteries), electrolyte can jump out while carelessly pouring water into cells. Also, fumes of sulphuric acid which is a part of electrolyte and actually responsible for corrosion keeps arising out of vents of flooded lead acid batteries when battery is charging or hot. Overcharging heats up the battery and heat increases the volume of electrolyte filled inside it. This electrolyte can leak out of vents of overcharged flooded lead acid battery…
—————
Why more at one battery terminal than the other? Seems it depends on which type of electrochemical reaction is happening.
Why only some cars? I’m not sure it doesn’t occur to some extent on all vehicles, but naturally newer cars have newer batteries. Maybe some manufacturers also provide better battery corrosion protections than others (terminal enclosures etc.) which is probably not an option for lower cost cars.
In my own experience once battery corrosion reaches the point of being obvious, it can quickly get worse in a runaway effect until the vehicle will no longer start. My guess is that decreasing metal contact area at the terminal results in increasing electrical resistance, which in turn leads to increasing heat, which speeds the breakdown of metal.