postmarketOS and other projects are working tirelessly at bringing Linux to phones. SailfishOS too. Plenty of Android apps even run inside these runtimes.
App compatibility relies on apps supporting (very) old Android versions, though. It's also flaky in many areas and with how few Linux phones have decent GPU support, there's also a performance challenge there.
For some apps, running on Linux doesn't work because the app developers chose to only run on Play Certified, original firmware (Play Integrity and friends). Those apps cannot be patched to work right unless they implemented their checks badly.