Sie sagen es nicht, aber ich vermute, Sie führen Postgres entweder unter MacOS oder Linux aus.
Die erste Form (ohne -h) stellt eine Verbindung über einen "Unix-Socket" her. Die zweite Form mit "-h localhost" verbindet sich über TCP/IP mit localhost (IP-Adresse 127.0.0.1).
Postgres behandelt diese beiden Arten von Verbindungen unterschiedlich - oder kann dies zumindest tun. Wenn Sie in der Datei "pgsql/data/pg_hba.conf" nachsehen, welche Authentifizierungsmechanismen für die beiden Verbindungstypen konfiguriert sind.