Funny, all the binaries in my UserLAnd are aarch64, not x86.
I'm not sure how they do it -- faking syscalls? -- but recently, changes in Android filesystem access policies made it impossible to move files between UserLAnd and the outside Android environment.
Sorry, my comment was a bit misleading – it doesn't seem to use emulation, only syscall translation of some kind. iSH does both.
For that matter, I'm actually not aware why UserLAnd's approach is compliant with the minimum API level required for the Play store but Termux isn't. I always thought the point of contention was exec()'ing executables not delivered through the store, which both of them can clearly do.
Update: It seems like UserLAnd just hasn't been updated in a while, and the API level requirement is apparently not enforced for existing apps in the store.