O problema é que o caminho que você entrega para --exclude deve ser relativo ao caminho de origem original do comando rsync . Isso também significa que você pode acabar com o / no início de /subdir
Além disso, não é necessário especificar o usuário e o host na parte --exclude .
Então o comando correto seria:
rsync -av [email protected]:/home/dir . --exclude subdir
Observe que rsync --exclude também pode fazer correspondência de padrões, e a opção --exclude-from é uma ótima maneira de usar um arquivo com vários padrões de exclusão se você tiver exclusões mais complicadas.