For example, my shell-file-name is bash. I might customize
explicit-shell-file-name to '/bin/zsh', then i can
use '**/' zsh syntaxis in the wildcard expansion:
(let ((buf
(dired-noselect (expand-file-name "**/*.el" source-directory))))
(with-current-buffer buf
(dired-toggle-marks)
(length (dired-get-marked-files))))
=> 1731
;; => 277 ; If i would use shell-file-name
But setting explicit-shell-file-name to `/bin/zsh` doesn't let you use
`**/` in M-! whereas if you had set shell-file-name to `/bin/zsh` you'd
get that extra functionality everywhere.