I am using a Fritz!Box 7530 running Fritz!OS 7.25 on an FTTP 300/50 connection provided by Zen Internet.
Within the router, I have set the download/upload values to 300 (download) and 50 (upload), but when I do a speedtest, I get about 307Mbit down and only 47Mbit up.
However, if I change the upload value to 53Mbit, I am then able to achieve a 50Mbit upstream result on the speed test.
Is there a reason why the Fritz!Box behaves in this way?
Those values are probably used to feed into some QOS engine like codel (this is a general principle, rather than experience of this exact router). When a router has such a feature, they usually don't allow the connection to fully saturate, as that causes the opposite of a quality service.
Your connection will be better behaved with the QOS engine reserving some headroom than not. I'd suggest setting the value to the speed of the connection, and not above it, as you're bypassing the very logic that is understood to give a good service.
...unless you care more about Speed test banners than the actual in use performance of the connection