If you want to make sense of English vowel pronunciation, Middle English phonology – Wikipedia is always a good place to start.
Do had a long ō. (As it still does, allowing for the Great English Vowel Shift.)
The Middle English 3rd person of do was dōeth, if the verb was a main verb, and dōth, if it was an auxiliary.
Long ō before a th normally became /uː/, as in sooth, booth; but it sometimes became /ʌ/, as in mōther, ōther. And dōth. (No, I don’t know what the rule was, if any.)
Does is a conventional spelling of dō-s replacing dō-th (evoking do-eth). As far as I can tell, a Middle English dōs could only have ended up pronounced as /duːz/: I doo, you doo, she dooz. The pronunciation of the oe in does, to rhyme with buzz, is clearly carried over from the o of dōth: the -th changed to -z only after the ō had changed to ʌ.
… Ah. I see Brian Collins’ answer to How come does is not pronounced as /doʊs/? is the same as I worked out.