自己解決しているけれど、普段からssh -p port, とscp -P portって混乱するのに、
rsyncでしかもcronの挙動がダブルクオートとシングルクオートで異なるとか知らなくて、
p|P, "|'の4パターンで手探りしてしまった。

うちだと下記が正解でやっと期待通りに動作した。
ssh rsync crontabでググると「別途スクリプト作って呼び出す」って解説の人が多い。
まあ解決策にこだわる必要性はないけれど、恐らく自分みたいに混乱したんだろうなって思った。

45 01 * * * name rsync -e 'ssh -p port -i /home/name/.ssh/nas' -azu --delete name@IP:/home/name/work/ /home/name/work/