Mildred Pope, From Latin to Modern French, 1934. A very good book.
Early on in the history of French, every instance of /u/ changed to /y/; and very soon after, every instance of closed /o/ changed to /u/, as a pull-chain (of the kind that happens a lot with vowels). It’s not as early on as the change of /a/ to /æ/, which was 6th century (carus > kæro > chère); the /y/ seems to have been more like 10th century.
This is not an unprecedented change in language; we think that Greek upsilon went from /u/ to /y/ in the same way. But it is a change that happens to be specific to Early Old French (Francien), because all sound changes are specific to a time and place. So I’m guessing it didn’t make it to Languedoc.
Pope’s fine print (§183) is:
The palatalisation of /u/ appears to have spread slowly from the south, reaching last the northern and eastern region. Norse words were affected by it (cf. modern Etainhus > Steinhüs), rhymes between /y/ and /u/ are occasional in mediaeval northern texts, and the sound /u/ is still retained in Eastern Walloon.
French did have the option of respelling its <u> as something else, like <ü> or <y>. It did not feel it needed to take that option, because all the Latin (and Gallo-Latin) <u>s changed pronunciation to /y/. So it got to keep its spelling the same.