Docker Compose всъщност добавя имената на хостове на всичките ви свързани контейнери един към друг.
На вашата машина базата данни postgres всъщност работи в localhost, затова имате localhost име на хост.
В Compose се изпълнява в контейнера postgres, с името на хоста postgres , ето защо имате postgres име на хост.
Ако желаете, можете да създадете запис във вашия хост файл, за да пренасочите postgres към localhost , тогава просто ще трябва да използвате postgres навсякъде.