It could also be because said exchanges haven't designed an internal mechanism to adjust the fee of a user's transaction in the first place and just assigned a static constant for everybody regardless of network conditions.
There is absolutely no valid reason why binance would not be able to efficiently batch their transactions and charge their users a fair fee instead of the standard 25-30$ they are charging now given how much money they make, so it is really deliberate IMO, and very shameful.
I suspect this is also the reason why they don't really want to implement lightning deposits/withdrawals...
They make wayyy too much money off of deposits and withdrawals, so they rather attract the least attention possible to make people oblivious to the fact that they're actually completely getting ripped off. Now if they started an offensive implementing lightning and THEN charging users 20-30$ withdrawal fees with no apparent reason.. now that would probably cause some backlash.
I'm almost certain that it is done for more profits and to a certain extent, helping the exchange to offset the costs of moving the funds within their own addresses as well.
Right now the average for 1 block is what, ~10 vbyte per sat? They're still charging 21$ per withdrawal, so their fees really aren't dynamic at all.
50000 satoshis, let's say 588 WU (though they batch transactions so really is should be roughly a quarter) gives us 340 sats per vbyte.
That's absolutely ridiculous given the current fees, even to confirm in 1 block.