They are identical in all but their first letter, but they don't rhyme at all. Is it just sound shifts over time, or some other reason?
Yep. You can blame it on the Great Vowel Shift, and all the smaller ones before it (but not after), plus some of the consonants altering themselves to fit a passing craze from time to time.
Both words are Germanic, their etymology going back to Middle English to Old English, with no French or Latin influence; it would be safe to assume that the -gh- once stood for the hard "h" (like the last sound in the German name Heinrich) that is now gone from the English language. So laughter and draught went one way, and daughter and Charles Laughton the other. That's life, as Garibaldi used to say.
There are many, many cases in English where the same letter or combination of letters is pronounced differently in different words. This is most definitely not the only example.
Consider the "c" in "car" versus "race". Or the "g" in "goat" versus "gentle". Or the "o" in "go" versus "do".