There are two ways to support old Android versions:
Build one app that makes use of compatibility patches to supports old Android versions (down to a specific version) but also support all modern Android versions.
Build two or more apps each for a set of Android versions.
The second option is of course very costly as you have to develop maintain each app app version independently (or at least large parts of the app). This way is often not used or only if the app has been completely rewritten for new devices and for old devices the old version remains with minimal to no support.
Therefore the common way is opion1 -option 1 – one app that has all compatibility fixes included. The main problem is that newer Android versions include interesting new features that are not (fullfully) available using the compaibilitycompatibility system Google provides. Therefore if you want to make use of them and the functionality is not optional in your app, app developers may decide to drop support of older Android versions in favor if being able to use new features of new Android versions. Decreasing the number of supported Android versions simplifies the app as old workarounds can be removed and don't have to be maintained anymore. And of course it removes the necessity to test the app on such old devices which can be a problem if you want to test your app on physical devices (not emulators) as old devices break and are more and more difficult to get.