Exchanges establish their own fees. The fees are different not only between exchanges but sometimes between different trading pairs on the same exchange. Use a free service like Switchain to compare rates between a few different exchanges for each individual transaction.
There are custodial and non-custodial exchanges. Put simply, the first ones hold onto your assets that you leave with them which is what makes it vulnerable. Once it's hacked there's nothing you can do but watch. Non-custodial ones only hold your assets for the time necessary to complete the exchange.
Hope this helped.
Fees, delay, uncompleted coins list make users will leave exchange but this is not problem. Many exchange already came with powerful tools and friendly support to solve many users problems, but we must understand there's something ( rules/ condition ) they can't break. Take any exchange you want but they must have good track record and responsibility to finish and protect our transactions.