The two forms stem from different numeral systems.
The Romans used the decimal system that we still use today (counting in tens), whereas the Celts and, by extension, the Gauls used a vigesimal system (based on the number twenty). Hence quatre-vingt = four times twenty and quatre-vingt-dix (originally quatre-vingt et dix) = four times twenty plus ten. Soixante-dix is the weird one out, as it combines the two systems, soixante being part of the decimal system and the addition of ten being typical of the Celtic system.
As it often happens with languages, different uses stuck in different places.
In France in the middle ages, people still mostly used the vigesimal system but by the end of the 15th century, perhaps under Italian influence, decimal forms became dominant. The language retained traces of the Celtic numeral system in France whereas they partly disappeared in Belgium, where people say septante and nonante but still use quatre-vingt, and completely in Switzerland where octante is used.
Although it may be illogical, these numbers are part of the language and French French is actually one of the few European languages, along with Basque, to have retained traces of the Celtic numeral system. Both forms are understood and accepted by all speakers and can act as an indication of where someone is from; as a French woman living in Belgium I have had to adapt and call the bus I take every morning “le septante et un” and god forbid I let a “soixante et onze” get past me.
This is just one of the many, somewhat inexplicable differences between variants of the same language that exist, but why should we get rid of them? You wouldn’t ask the British to get rid of biscuits, trainers and jumpers and talk about cookies, sneakers, and sweaters now would you?