Rather - you should be asking the question, why don’t the shops in the Netherlands, just mark up the price, to €1 instead?! Seems incredibly stupid, to me.
And if you pay with your debit card then it's still €0.99.
€2.97 will net you 2 whole cents if you pay €3 in cash and get a five cent coin back.
It's legal:
https://www.rijksoverheid.nl/onderwerpen/geldzaken/vraag-en-...
With digital payments taking care of transferring the exact amount with no additional surcharges for at least 20 years, I don't think it's a pressing issue. If I cared for my 1 cent, I'd pay through NFC or by card.
Stores are allowed to round to round to 0 or 5 cent if they indicate they do. This can also work in your favour; €1,07 will be rounded down to €1,05 if the store rounds to fives, and you should be given your 5 cent coin if you pay with €1,10. I've never checked if stores actually do that, though; I think it's been a decade since I last paid with cash at the grocery store, so all I can tell you is the law and explanation the government provides: https://www.rijksoverheid.nl/onderwerpen/geldzaken/vraag-en-...
It's been discussed by policitians in Britain, but as far as I know there are no plans to introduce it.