La différence entre "-" et "pas de trait d'union" est que cette dernière option garde votre environnement existant (variables, etc.) ; le premier crée un nouvel environnement (avec les paramètres de l'utilisateur actuel, pas les vôtres).
https://wiki.archlinux.org/index.php/Su
Le trait d'union a deux effets :
1) passe du répertoire courant au répertoire d'origine du nouvel utilisateur (par exemple, vers /root dans le cas de l'utilisateur root) en se connectant en tant que cet utilisateur
2) modifie les variables environnementales en celles du nouvel utilisateur en tant que tel que dicté par leur ~/.bashrc. C'est-à-dire que si le premier argument de su est un tiret, le répertoire et l'environnement actuels seront changés en ce qui ce à quoi on pourrait s'attendre si le nouvel utilisateur s'était effectivement connecté sur un nouveau session (plutôt que de simplement reprendre une session existante).