Why Is the Fee Still Paid Even If the Transaction Fails?
The fee is paid because the validator successfully processed the transaction up to the point of failure. The validator expended the necessary computational resources to execute the code and determine that the transaction should revert.
The fee compensates the validator for this expended and necessary work.