Потому что \d это мета символ, а вы пытаетесь его внутри character classes [] искать.
Есть несколько стандартов регулярок, и find не умеет PCRE стандарт. По умолчанию у него emacs стандарт. Поэтому ваша регулярка это:
Но вот что интересно, я нашел статью ergoemacs.org/emacs/emacs_regex.html и тут можно заменить символьные классы на те, которые понятны для emacs.
Но у меня и тут возникли проблемы. find -regex '.*[0-9]\.txt.*' работает
а так нет find -regex '.*[[:digit:]]\.txt.*'
Наверное тут тоже подкралась ошибка.