Not really.
It might be legal as far as laws go, but the place that does it could get smacked with a $100,000.00 fine per its contract with the Visa/Mastercard people. And they offer rewards to customers, too.
Do a little research with your credit card provider (not the person on the card...like, if you had a Disney Visa, you wouldn't call Disney, you'd call Chase or whomever backs it.) You could get a reward! When I worked with that stuff, I think the reward was $2500.00. I know it was substantial, anyway.
No discounts for cash.