IRC lacks widespread support for things like roles, reactions, avatars, threads, showing chat history from before someone enters a channel, search history, and having video and voice chat without piggybacking on top of DCC. There also aren't sync issues within Discord that cause things like netsplits which are somewhat common on IRC
I know some newer versions of the IRC spec try to address at least some of these, but as far as I'm aware, they aren't very widely supported
IRC is also just not ready for a multiple device lifestyle. People expect to log in and have the same stats across devices, that’s very hard to do with IRC.
Technology improved, people got Features and Devices, they wanted to use their Features and Devices, and they switched to the service that gave them their Features on their Devices. There's no mystery.
The average person doesn't care about federation or an open protocol or whatever. They probably don't even understand those things and they don't want to understand them. They just want to chat with their friends and send emojis and not get upset that things don't work. IRC, by all accounts, fails to do—out of the box—all of those things (well).
Me too. Judging by Discord's tendencies toward speech policing and censorship there will be plenty of groups staying out of it though. A large part of the previous subculture will probably be banned promptly on Discord.