Com todo o respeito, não acho que o código / resposta acima esteja correto.
if [ -d dir]
é provavelmente uma tentativa de if [[ -d "$dir" ]]
.. ou [[ -d "$dir" ]];..
O código a seguir deve funcionar e fazer o que você quiser.
vhostdirs=( ./var/www/vhosts/* )
for dir in "$vhostdirs"
do
cp -r "folder_to_be_copied" "$dir/htdocs/"
done
Mente também as aspas " "
em torno das variáveis que são essenciais para que os espaços em branco nos nomes dos diretórios sejam preservados.