To answer the question "why" (is there no equivalent to termux on iOS): iOS places more restrictions on binaries that can be executed or loaded. It's not enough to cross-compile, the binaries also need to be signed with the developer certificate and placed in a directory that can only be accessed when the app is written on the phone. So you just cannot add new executables to an existing app on a non-jailbroken iPhone.
iSH works around this limitation by loading x86 binaries, that are executed using their x86 emulator. The good part is that anything can be installed, the not-so-good part is that the emulator can be slow.
a-Shell (and before it OpenTerm, and also Libterm) work around this limitation by having all the commands written when the app is installed on the phone. So you have a lot of commands, and they're fast, but you cannot add more commands (full disclosure: I'm the author of a-Shell, and contributed a lot to OpenTerm).