Running x86 binaries under software emulation, and forking off arbirary ARM binaries, aren’t the only two alternatives. You can do what Wine or gVisor does: run native-architecture code, but virtualize system calls as calls into the host binary.
You can't run arbitrary unsigned machine code on iOS. Interpreting it is the only solution.
Unfortunately, that slows things down with iSH a lot. iSH gives surprisingly complete Linux environment, complete with ability to install most of the packages you'd want. There's even an iSH folder in the Files app that gives easy ability to interchange files between iSH and the regular iPad environment. However, the emulation layer slows the Linux applications down quite a lot. Depending on your needs, though, might still be good solution for some things.