Here is a note from the 古漢語常用字字典 concerning synonyms for ‘quick, fast’ in Classical Chinese:
[辨] 快, 速, 疾, 捷. 這幾個字都有快速的意思.
“快” 表示快速是後起意義, 在上古只做愉快講, 而”快速”這個意義卻常用"速"表示.
"疾” 一般比”速”快一些. “捷” 指動作輕快, 敏捷.
(See under entry for 速)
[Note: I misread this dictionary entry initially - it doesn't mean that 'kuai' occured in a compound with 'su' in CC. The comments that follow have been edited in this light.]
This is saying what others have posted - that originally (or in the pre-classical period) 快 meant happy, and only later took on the meaning of fast. It was 速 which did mean ‘fast’ at that early date, which makes sense given the ‘movement’ radical. I would suggest that the semantic range of 快 may have expanded due to use as an attributive. For example, speed was a desirable quality in horses, so 快馬 was a horse that made people happy. Perhaps 速 lost its adjectival role and other words were used to fill in. An analogous usage in English would be “a goodly pace.”
You could see how this would work with 疾 as well. This character in Classical Chinese meant to be sick – in comparison to 病, 疾 denoted a less serious illness. If it was used to modify other words in the sense of “a feverish pace” or very fast, a similar semantic shift seems plausible.
I don’t think this interpretation necessarily contradicts @Michaelyus’s idea that this is due to 假借borrowing. This kind of semantic shift is known from many languages, as the English examples I’ve given suggest.
快，喜也。从心，夬聲is the original text in Shuowen, so the core is why it can evolve to have a meaning "quick". I think there may be two possibilities: 1) some other character with a similar pronunciation had a meaning related to "quick", 快 was mistakenly written for that character, and then became popular; 2) 《說文新證》：“【夬】射箭時套在指上的扳指，分決為引申義。甲骨文从又，○形象扳指。＂ So if 夬 had a meaning related to a shooting arrow, it would be a reason for why 快 could have the meaning "quick".