OK, everyone, I know when I’m outnumbered! Apologies for having taken so long to produce the answer to this one.
Actually willn’t is not unknown historically as a contracted form of will not, though it has never been common; Charlotte Brontë used it in Shirley in 1849 in order to represent local Yorkshire speech: “That willn’t wash, Miss”. It turns up also in Mary Barton by Elizabeth Gaskell: “No, indeed I willn’t tell, come what may”.
So why the o in the contraction when it should be i? The answer lies in the irregularity of the verb will: it varied a great deal in different places and at different times. Though the present tense was often wil or wille, there was a period when it appeared as wol or wolle; this was especially common in the Midlands of England in the late medieval period, and may have been an unconscious imitation of the simple past tense, which was spelled and said with an o as standard. For some reason, though the present tense eventually standardised on will, the contraction of the negative settled down to be won’t, using the vowel from the other form.
As several of you have pointed out, there ought to be another apostrophe in there, as there should be with shan’t, marking the missing l or ll, but it seems to have been extremely rare, even more so than the second apostrophe in sha’n’t. One notable user was Lewis Carroll, who adopted wo’n’t and sha’n’t in his Sylvie and Bruno books, as well as other non-standard spellings: “She says I wo’n’t learn my lessons. And I tells her, over and over, I ca’n’t learn ‘em”. Carroll wrote in the introduction to Sylvie and Bruno Concluded: “Other critics have objected to certain innovations in spelling, such as ca’n’t and wo’n’t and traveler. In reply, I can only plead my firm conviction that popular usage is wrong”. His attempt to re-educate the English public was unsuccessful.