If the etymology from "dun" is true, I would guess the current pronunciation is either random or a spelling pronunciation, not a regular sound change.
Here's some evidence that some people think of the pronunciation "dunkey" as sounding uneducated due to the apparent mismatch between the spelling and the pronunciation: http://deepsouthmag.com/2013/04/25/not-our-kind-of-folks-southern-soundscapes-in-to-kill-a-mockingbird/, http://boards.straightdope.com/sdmb/showthread.php?t=516740 This perception could provide social pressure towards changing the pronunciation from /ˈdʌŋki/ to /ˈdɒŋki/ even though there was no general phonological reason for the vowel to change.
I'm not sure why similar pressures did not cause "monkey" to be pronounced with /ɒ/. One thing I notice is that the word "monkey" is older and so it may have had more time to get an established upper-class pronunciation that people were widely aware of. In contrast, "donkey" is more recent, and seems to have started out as a slang or lower-class word (the formal term used to be "ass") so when it started to be more widely used, it may have been easy to assume that the pronunciation with /ʌ/ was just some kind of lazy pronunciation or lower-class corruption of /ɒ/.
The ideas that spelling should indicate proper pronunciation, or that there are such things as "corrupt" or "lazy" pronunciations (that people of lower social classes or lower educational levels are particularly prone to use), are meaningless from an objective linguistic viewpoint, but nevertheless common. The existence of these ideas in literate societies means that spelling can have very real effects on spoken language, despite the common insistence among linguists that spoken language is the "real" thing and writing just an unimportant side-effect that allows us to record spoken language. (In fact, I think the idea that "real language = spoken language" is pushed so hard by some linguists because they're trying to combat the erroneous idea floating around in many cultures that the written word is primary).