Sugiro usar
find / '(' -iname '*.htm' -o -iname '*.html' ')' -printf '%h\n' | uniq | xargs -r -d '\n' ls -l
A primeira parte, find / '(' -iname '*.htm' -o -iname '*.html' ')' -printf '%h\n' , localiza todos os arquivos que terminam com .htm ou .html em maiúsculas ou minúsculas (usando padrões glob) e imprime o diretório ( %h ) para cada arquivo encontrado, um diretório por linha.
Por causa de como find varre os diretórios, há um ou mais diretórios idênticos consecutivos listados; uniq retém apenas um de cada.
Finalmente, alimentamos a lista de diretórios para xargs , informando para não executar um comando sem nenhum diretório -r e que o separador é uma nova linha -d '\n' . O comando é ls -l ; modifique ao seu gosto.
Se você precisar apenas da lista de diretórios, não do conteúdo desses diretórios, elimine o xargs part:
find / '(' -iname '*.htm' -o -iname '*.html' ')' -printf '%h\n' | uniq