Вы не совсем корректно используете директиву replace из-за этого редактор пишет ошибку.
В go вы можете обращаться к пакетам из текущего проекта или из внешнего. Чтобы обращаться к внешним пакетам нужено указать его в go.mod, для текущего проекта это не нужно.
В вашем примере два пакета example.com/hello и example.com/greetings. Добиться нужного вам поведения можно несколькими способами:
1. Оба пакета находятся в одном проекте (репозитории)
Тогда в корневой директории нужно создать go.mod с "module example.com" и все будет работать как вы ожидаете. От файлов go.mod в greetings и hello нужно будет избавиться.
2. Greetengs внешний проект
Нужно опубликовать его и получить через go get
3. Greetengs внешний проект без публикации
Использовать go workspace