They're not an independent local store; they're part of a chain and they will have rules about what they can and can't do.
About 20 years ago in the year before I went to university, I worked in a 'local shop' that was part of a national chain of newsagents. Yes, we had regular customers, and yes, we knew them and they would come in day after day - but we couldn't offer them credit. We had to cash up and submit figures at the end of the day and if the till was more than a couple of quid down, it was added up and docked from the staff pay packets at the end of the week.
Also, every time a till was down (even by only a few pence) it put a flag on the system and after a certain number of times the store manager got a bollocking or even a warning from head office.
You will not be the only person who expects to get 20p off. If they let everyone they know off 20p here and there, they'd be quite a bit down. They will already lose money every week in drive-aways from the petrol station, shoplifting, damage, fake coins/notes and all manner of other things; it's really not as simple as 'oh, it's only 20p, they won't notice'.
A pint of milk is only about 50 or 60p in the first place, so 20p is quite significant proportion of the price, too. You're not talking about a penny or two.
It's obviously nice when shops can do stuff like that for their customers, but YABU to expect it and even more so to be annoyed that they said no.