Bank charges overdraft fees as compensation for the risk they are taking by allowing consumers to spend they don’t own. The fact that a user doesn’t have to face the embarrassment of transaction denial at the merchant takes some extra effort, hence the cost.