I had two Samsung flagship phones, one (S20FE) had an optical fingerprint reader and the other (S22) had an ultrasonic one. Both of them somewhat regularly failed to read my finger, were slower than a fingerprint reader on the power button and are more expensive/complex to build. They won’t work with cheap 3rd party screen replacements and some screen protectors as well.
Meanwhile my $90 Android phone has a fingerprint reader on the power button. It never fails and I never have to perfectly place my finger on the sensor area to get it to work. It just seems like the perfect place to put a fingerprint sensor, so why do phone manufacturers keep using in-display fingerprint readers over the cheaper alternative?
For me, dirt and especially water getting into the case through the camera holes is definitely an issue, and my case also is tight.