Nie mówisz, ale zgaduję, że uruchamiasz postgres na MacOS lub Linux.
Pierwsza forma (bez -h) łączy się przez „gniazdo unixowe”. Druga forma, z "-h localhost" łączy się przez TCP/IP z localhost (adres IP 127.0.0.1).
Postgres traktuje te dwa rodzaje połączeń inaczej – a przynajmniej może to zrobić. Jeśli sprawdzisz plik „pgsql/data/pg_hba.conf”, aby zobaczyć, jakie mechanizmy uwierzytelniania są skonfigurowane dla tych dwóch typów połączeń.