Du siger det ikke, men jeg gætter på, at du kører postgres på enten MacOS eller Linux.
Den første form (uden -h) forbindes via en "unix socket". Den anden form med "-h localhost" forbinder via TCP/IP til localhost (IP-adresse 127.0.0.1).
Postgres behandler disse to typer forbindelser forskelligt - eller i det mindste kan den gøre det. Hvis du tjekker filen "pgsql/data/pg_hba.conf" for at se, hvilke godkendelsesmekanismer der er konfigureret for de to typer forbindelser.