Не казвате, но предполагам, че изпълнявате postgres на MacOS или Linux.
Първата форма (без -h) се свързва чрез "unix socket". Втората форма с "-h localhost" се свързва чрез TCP/IP към localhost (IP адрес 127.0.0.1).
Postgres третира тези два типа връзки по различен начин - или поне може да го направи. Ако проверите файла "pgsql/data/pg_hba.conf", за да видите какви механизми за удостоверяване са конфигурирани за двата типа връзки.