How can run native executables compiled for ARM on unrooted Android devices?
In addition to noexec mount option, /sdcard is emulated filesystem with fixed file permissions. So files can't be set executable. But some file explorers like MiXplorer support executing binaries/scripts from /sdcard through /system/bin/sh.
/data/local has permissions 0751, owner root.root 1, so normal apps can't access it. However from adb shell use /data/local/tmp which has user/group owner 2000 (aid_shell) 2 and selinux is also allowed 3. So you won't get permission denied.
If you don't want to use PC, terminal emulator is the only option. On Termux you can also add /data/local/tmp (or a subdirectory) to $PATH by editing ~/.profile if you want to avoid placing binaries on multiple locations. But the directory should be world-readable and selinux must not be denying the access or execution of binaries.