Looking at the code I wrote a while back to drive a four-digit common-cathode LED display (you know, a TV bomb timer!) as a clock, I find that after all the tuning I did to get rid of flicker, I ended up activating each digit for 1ms at a time. Granted, running under Raspbian this is going to flicker anyway from time to time because multitasking, but that aside, I found no PWM flicker perceptible, even at what is effectively 20% duty cycle over a 5ms period. (The decimals are implemented as a fifth "digit".) So I'm going to guess that .5KHz and up are fine for most humans. Fish I don't know about; (1) cites a flicker fusion rate between 2 and 40Hz for swordfish, but for goldfish I've no idea, other than to guess that .5KHz and up is probably fine for them too.
(1) https://www.google.com/amp/amp.livescience.com/3799-fish-eye... (Sorry for AMP, but taking it off the front nets me a timeout from livescience.com. Something broken there, I'm guessing.)