If it was a trick by the supermarkets, then why do many local shops give you back a Riyal when they only owe you 25dhr? If there wasn't a coin shortage, they'd give you back the correct change wouldn't they?

Or are you suggesting that the supermarkets have hoarded all the coins and are keeping them in a box somewhere so no-one can use them?

The supermarkets make plenty of money - they don't need to resort to tricks like this to try and make a bit extra.