You can 100% create and manage your own wallets on your own hardware. However, most exchanges have transfer fees, on top of whatever costs are incurred on the network by the transfer. And, if you want to sell on an exchange, you likely need to transfer the tokens into the exchange wallet anyways.
If someone is buying crypto to hold it for years, then wallets and hardware keys and 12-word passphrases make the most sense.
If you're not sure if you'll hold a coin for long, or are speculating, or have less than $5k on the exchange, it might not be worth the hassle (for the indeterminate 'you') to create and manage your own wallets.
> However, most exchanges have transfer fees, on top of whatever costs are incurred on the network by the transfer.
Most might, but Coinbase does not. Outgoing transfers are free—they even cover the network fee. For incoming transfers the sender pays the network fee but there is no additional charge.
It's a bit of a hassle to shift funds around, and not having your funds instantly available on the exchange limits your ability to take advantage of short-term opportunities, but in general I would still recommend self-custody over leaving "large" amounts of crypto on an exchange for very long. That's less due to the risk of bankruptcy and more due to the risk of the exchange getting hacked—practically speaking we have more real-world examples of the latter case, discounting bankruptcy directly resulting from a previous hack.
If someone is buying crypto to hold it for years, then wallets and hardware keys and 12-word passphrases make the most sense.
If you're not sure if you'll hold a coin for long, or are speculating, or have less than $5k on the exchange, it might not be worth the hassle (for the indeterminate 'you') to create and manage your own wallets.