Noah pronounced the curse directly on Canaan because the cursing of Ham had the implications of a generational curse. Noah was not just going to be satisfied at seeing Ham suffer for his wrongdoing. He was so embittered and could only have pacified his anger in seeing a high range of calamity blazing down on not only Ham, but also on his seeds. It was one of the ways that Noah could reinforce the gravity of the offence of Ham; that is, by letting him know that he was not just going to suffer alone for his wrongdoing.
“24And Noah awoke from his wine, and knew what his younger son had done unto him.
25 And he said, Cursed be Canaan; a servant of servants shall he be unto his brethren.
(Genesis 9:24-25 kjv)
In other words, Noah extended the curse beyond Ham to prove to him that what he did was highly injurious and summarily unpardonable. If it was not so, then, Noah wouldn’t have had any need extending the consequences beyond the life and time of the direct offender.
Another way we can explain why Noah went beyond Ham the offender to curse his son Canaan can be drawn drawn from the scriptures by cross-examining what transpired between Elisha and Gehazi.
“Therefore the leprosy of Naaman shall cling to you and your descendants forever.” And he went out from his presence leprous, as white as snow” (2 kings 5:27 kjv)
Elisha was so aggrieved over what Gehazi had done to him. And the only way he could pacify his anger was to see a grave consequence burning down on him and his descendants forever, in so much that only that gravity of punishment would be commensurate to the degree of injury that the offender had inflicted on his soul. Just like you would pronounce huge blessings upon anyone that impresses greatly upon your soul.
The case scenario surrounding Elisha here is similar to what Noah felt over the offence of his younger son. So, from the Elisha-Gehazi picture, we can clearly see why the judgment was not directed to Canaan personally but rather to his descendants, and more specifically, Canaan, even though Canaan was Ham's fourth son, (Genesis 10:6). The only thing we can deduce from why all four sons were not rather affected and/or why Ham’s first son, Cush didn’t instead have to bear the brunt is simple: Canaan was Ham’s favourite son. Notice that, Canaan, is named in verse 22 as Ham's son. That Ham is Canaan's father is emphasized twice in the account (verses 22, 24), whereas his other sons were not mentioned by name throughout the chapter under review.