Vous ne dites pas, mais je suppose que vous exécutez postgres sur MacOS ou Linux.
La première forme (sans -h) se connecte via un "socket unix". La deuxième forme, avec "-h localhost" se connecte via TCP/IP à localhost (adresse IP 127.0.0.1).
Postgres traite ces deux types de connexions différemment - ou du moins, il peut le faire. Si vous vérifiez le fichier "pgsql/data/pg_hba.conf" pour voir quels mécanismes d'authentification sont configurés pour les deux types de connexions.