Instead of keeping them in cold storage/private wallets because they get to dump the free coins earlier at the best price. Otherwise holders in private wallets will encounter many delays that will result in dumping the free coins for pennies/free.
I read everyone saying keep bitcoins in private wallets instead of exchanges as exchanges are riskier but when it comes to forks the exchanges are at a speed advantage.
What can be done in the future to prevent this and make it fair?
Logic, hodlers don't keep bitcoins in exchanges because they don't believe in short-term trading and their perception of bitcoin price is much broader than a few dollars high or low.
Future/Fair, it sounds like forking is an ever occurring event
It is free coins, have funds in exchanges, you dumped it quickly and made a few dollars. You are a hodler, no dumping, hodl the free coins. In the long term it might end up in profit or null/free, no loss, no impact on the bitcoins you are hodling.
Hard fork/coins in exchanges/no control over your funds/free coins = Fair
Hard fork/cold storage/control over your funds/HODL/dump/choice = Fair
It is choice, priority. If you think it is good to have your funds on a third party website during a fork to get free coins, then it is fair. If you think having control of your funds during a fork to have delayed access to free coins, it is fair.