1. На разных операционных системах - свои правила.
2. Когда ты компилируешь, не указывая где будешь использовать - тебе компилирует под ту операционную систему, на которой ты и запускаешь компилятор.
3. В такой ситуации как у тебя нужно явно указывать на какой операционной системе ты собираешься запускать программу.
4. Это называется кросс-компиляция. Ищи в интернете по этому слову.
5. Тебе здорово повезло, что ты имеешь дело с Go, в противном случае пришлось бы иметь дело со специальными dev-истралляциями и/или тулчейнами.
6. Тебе нужно выставить 2 переменные среды окружения - GOOS=linux и GOARCH=amd64, то есть указать формат создаваемого файла. А затем запускать компилятор.