A única diferença é que o primeiro comando,
cp -R /a/. /b
copiava arquivos e diretórios ocultos de /a para /b , enquanto o segundo comando,
cp -R /a/* /b
não faria isso.
A razão para o segundo comando não copiar arquivos ocultos é que o * se expande para todos os nomes não ocultos em /a (a menos que a opção dotglob do shell esteja definida em bash ou a opção equivalente em qualquer shell que esteja sendo usado, se disponível).
A pergunta original usou -r no segundo comando em vez de -R :
O sinalizador -r é mantido em algumas implementações de cp (% GNUcp, por exemplo) para compatibilidade com versões anteriores. É um sinalizador não padrão para o comando cp e, na implementação que o possui, é semelhante a -R .
No GNU e AIX cp , -r e -R são iguais. Em algumas implementações históricas de cp , ele manipula arquivos especiais como FIFOs e sockets de maneira diferente. A implementação de cp -r/-R do Solaris é diferente apenas para FIFOs ( -R os recria, -r lê a partir deles). Nenhum dos BSDs gratuitos tem -r em suas implementações cp .