Yes, this is a problem in bash. In zsh you can use temporary files for process substitution, like this:
vimdiff =(ls /bin) =(ls /usr/bin)
You can use it even from bash:
zsh -c 'vimdiff =(ls /bin) =(ls /usr/bin)'
vimdiff =(ls /bin) =(ls /usr/bin)
You can use it even from bash:
zsh -c 'vimdiff =(ls /bin) =(ls /usr/bin)'
vimdiff <(ls /bin) <(ls /usr/bin)