Como você suspeitava, provavelmente é um problema de mapeamento de uid / gid. Primeiro você vai querer encontrar o uid de www-data
:
$ id www-data
uid=33(www-data) gid=33(www-data) groups=33(www-data)
Então você pode pedir ao sshfs para mapear como:
$ sshfs -o uid=33,gid=33 <remote> <local>
Isso pode resolver isso.
No que diz respeito ao design, apenas tome cuidado, pois se a conexão do seu ssh cair, o sistema de arquivos montado também cai. Eu não estou ciente de uma maneira fácil de detectá-lo (além de talvez um trabalho cron que detecta). O NFS pode ser mais robusto se for uma opção. Eu acho o sshfs bastante útil, no entanto.