Você está quase lá, alguns pontos:
Seu regex, embora válido, também coincide com a visualização em algum outro lugar na URL (por exemplo, test.preview.example.com). As seguintes correspondências somente se o URL começar com "visualização".
SetEnvIfNoCase Host ^preview\. preview_site
A ordem precisa ser alterada para "Permitir, Negar", porque você deseja que o mod_access falhe quando as declarações Negar e Permitir corresponderem. Após o mod_access falhar, o mod_auth será chamado por causa do "Satify Any".
Portanto, isso deve fornecer o comportamento que você está procurando:
SetEnvIfNoCase Host ^preview\. preview_site
AuthUserFile /Users/me/.htpasswd
AuthGroupFile /dev/null
AuthType Basic
AuthName "Development Area"
Require valid-user
Order Allow,Deny
Allow from All
Deny from env=preview_site
Satisfy Any