Я обычно предпочитаю переносимые (POSIX) решения, но простой и очевидный ответ здесь - использовать расширения GNU, чтобы облегчить вашу жизнь:
find . -type f -name '*.txt' -print0 | sort -z | xargs -n1 -r0 ./mycommand
Здесь используются нулевые байты в качестве разделителей между именами файлов, что является важно, поскольку имена файлов могут содержать любой символ, включая символы новой строки.
(Косые черты также зарезервированы, поскольку они являются разделителями компонентов пути, но в данном контексте это не имеет значения, поскольку их нельзя использовать в качестве разделителей файлов.)