In my opinion the main problem is the lack of easy and secure (for expert and newbies) ways to store your coins.
You can get a hardware wallet but they cost money, they (or the app working with the device) can be hacked.
Same thing for a software wallet.
And then you have the issue of where to store the seed phrase, what if I lose it, etc.
At the end of the day people leave coins on exchanges because its just more practical. You forget your password? The exchange will help you recover it. You dont need to buy an extra device, you dont need to trust an app on your iPhone, etc.
We need better and easier to use solutions to store coins.