É difícil fazer com um único padrão (regex ou shell), mas como find
pode ter várias condições, podemos usar
find . -type f -path "*word1*" -path "*word2*" ...
Na regex você precisaria especificar todas as diferentes permutações das palavras, como .*word1.*word2.*|.*word2.*word1.*
(ERE ou somente RE Perl), e isso explode rapidamente se você tiver mais do que duas palavras que deseja encontrar.