I would hazard a guess that the people who agree to DCC are likely also the ones who use a 3% international fee card, not knowing how/unwilling to open an account without those fees and are getting done twice every transaction.
Hey! I resent that. I do use my credit card for some international purchases, and yes I know there's a 3% fee on the transaction. Why do I do it?
- I still get points for the purchase. Sure, it's more expensive than usual, but so there.
- Changing for cash at most forex places in Australia incurs a minimum 4% margin against the midmarket, with or without commission. Most good banks use an interchange rate which is very close to midmarket, so adding their 3% fee is likely to be slightly better, even or rarely worse than having changed for the currency in Australia and paying in cash.
In all cases, I don't use DCC. I'm not that stupid or lazy.
Why is it legal?
The main tenet of capitalism is that anyone is allowed to offer something (goods or services) for sale for any amount that people are willing to consent to pay. If you could sell bottles of Mount Franklin for $2000 apiece, so long as people are willing to pay that, that's capitalism and totally legitimate. (You might even end up on a magazine cover or MBA textbook. Pharma bro, anyone?)
However, what is legal versus what is moral can be totally different. The law only protects the former; it has little foundation in the latter.
Australia is probably one of the few countries in the world where people - from commoners to politicians/decision makers alike - actually believe that if something is financially unfair or unreasonable, yet is legal, it should be considered to be illegal. In most other countries in the world, it's basically a tax on the idiotic or ignorant; in some cases, the companies which benefit from the immoral practice use their influence and/or pay off politicians in order to stop any attempts to outlaw said immoral practices.
The article all makes sense but honestly it doesn't really address the titular question except to a surface level, so it's not entirely satisfying.
Also see: why is Euronet legal?