Docker Compose faktycznie dodaje do siebie nazwy hostów wszystkich połączonych kontenerów.
Na twoim komputerze baza danych postgres faktycznie działa na hoście lokalnym, dlatego masz localhost nazwa hosta.
W Compose działa w kontenerze postgres z nazwą hosta postgres , dlatego masz postgres nazwa hosta.
Jeśli chcesz, możesz utworzyć wpis w pliku hosta, aby przekierować postgres na localhost , wystarczy użyć postgres wszędzie.