Iphone 11 max / pro etc have OLED screens and PWM as does the iphone X and all of the Iphone 12's but you can almost stop the flicker by setting the brightness to 100% or at least very high and then using reduce white point to lower the screen brightness artificially. I have seen videos online that seem to show different iphone 12s not flickering, but this could be due to certain cameras (likely other phones) having flicker sensors so they dont show it on video.
If anyone has an IOS device that causes issues before returning / putting in in with the 'bad' devices in a box try setting reduce which point to the first setting (25% 1st setting can go higher) its in settings - accessiblity - display & text size - reduce white point, this lowers the screen brightness by drawing over the screen with a filter, this is much much better on IOS than any app on Android.
I'm returning my Moto G8 Power as I cant use it, immeidately it gives me a headache thats just getting worse and I'll have a migraine soon. All the brigthness lowering apps did nothing.
I got a 2nd hand iphone 8 and this is fine BUT I have to use 'reduce white point' at ths first 25% setting. I can live with that.
What I cant live with is the battery as its 2nd hand and old and the price to replace the battery put the phone in the same price as a used SE 2020 so I ordered one, which from what I've read has the same screen as the 8 (hope so) so I'm likely going to return the 8 if the SE works for me.