Acho que você está perdendo algo em sua linha RewriteCond. Tente isto:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^http://www\.example.com\/ [NC]
RewriteRule ^(.*)$ http://sub.example.com/$1 [R=301,L]
Então adicione o %{HTTP_HOST}
na sua regra RewriteCond ... Note que eu não testei isso, então poste os resultados ...