The main reason is that up until the 13th century or so (well, up until much later than that really, but I’ll get back to it) there were really two French linguistic zones : the “tongues of Oïl” were spoken in the north and the “tongues of Oc” (also called “occitan”) in the south. Occitan is *much *closer to Spanish & Italian in its sonorities and vocabulary, while the tongue of oïl was closer to northern languages like Flemish, Walloon, Norman…
Inside those two great ensembles, each region had its own dialect, often based/related to one of the two but not necessarily (Breton would be one example of a regional dialect that has fuck all to do with either, it’s not a Romance language at all. Basque is another).
Both cultural zones disliked each other, couldn’t really understand each other without going back to formal(ish) Latin as a lingua franca, and accused the other of not speaking right. In the 13th century, these oppositions - which were not only linguistic - they were also economic, military, political, cultural… - came to a head, notably with the Albigensian crusade, and the tongue of oïl was officially imposed as the administrative language (specifically those oïl dialects spoken in and around Île de France, which is to say where the King’s centre of power was), coupled with a push to simply eradicate occitan, as a language and culture both.
This second project took a lot more time. Indeed, there still are occitan speakers today, even though the modern state in its time also implemented strong measures to quash regional languages throughout the 18th-20th centuries - in this day and age, speaking occitan is sort of a “rebellious”, regionalist, de-centralist statement, much like speaking Breton is. And of course modern French was influenced by occitan/southern dialects along the way.
But generally speaking that’s the gist of the story : modern French is “weird”, because it’s by and large a Romance language influenced by Northern languages/people instead of Mediterranean ones. So you’ve got a lot of nasal sounds, diphtongs (e.g. “OU” isn’t pronounced “the o sound followed by the u sound”, but sort of like the oo in boot), weaker consonants (e.g. S is pronounced either /s/ (strong) or /z/ (weak) depending on the letters that follow it) etc… and the evolution path of Latin words is usually different than the one observed in Italian, Spanish etc…