//go:fix is something understood by a particular implementation of Go. Another implementation could implement Go without implementing support for //go:fix and it would be a fully compliant implementation of Go, the language.
If they made it part of the syntax, that would require other implementations to implement it.
For other things, like `//go:noinline`, this is fair criticism. `//go:fix inline` is quite different in every way.
By making them comments, Go subtly signals that these are exceptional, making them less prominent and harder to abuse.
(My personal theory is that early go had a somewhat misguided idea of simplicity, and preferred overloading existing concepts with special cases over introducing new keywords. Capitalization for visibility is another example of that.)
(Though for the record, talking about alternative implementations when discussing Go is kind of a funny joke.)