The Play Store enabled emulator images are x86 images so they can be executed faster on an Intel/AMD CPU. Physical smartphones at the moment all use ARM CPUs (armv8a 64 bit to be precise).
If an app uses CPU specific native libraries it needs to include one version them for each CPU architecture it plans to support. Therefore if the app you want to install in the emulator only has native libraries for ARM then it can not be executed on an x86 emulator and thus will not be shown in Play Store.
Additionally when publishing an app in Play Store one can very flexible exclude or include certain device type(s).
As your app can be installed via side loading it seems to at least contain something for the x86 platform but detecting an emulator in an app and then let the app crash is simple. Besides that t!here are a lot of ways to detect an emulator. If an app developer does not want an app to be executed on an emulator it can get pretty hard and requires reverse engineering and code manipulation skills and many hours to make it run.
Especially financial apps disallow execution on an emulator as this is a common way for hackers to investigate such an app for attacking the bank, the app and their customers. Some banking apps even refuse to work on custom ROMs or rooted devices.