This has been brought up a few times and the same answers keep coming around. Mistakes, CPFP, Exchanges, people who absolutely want to be in the next block.
What I don't see mentioned a lot of the time is old bad software.
There are a lot of things out there running code that worked in 2014 and still works today in 2023 and back then BTC was at such a low price fees really did not matter so they hard coded in a large number and called it a day. This way the programmer did not have to sit there and worry about figuring out what fee had to be paid by looking at the mempool and doing whatever. It just worked. Close to a decade later, it's still running the same code paying the same fees because nobody has changed anything.
-Dave