march=native is about the least generic option you can pick: it builds tailored to the compiling hardware, so will use all the features of that specific hardware. Not so much a problem if you build on hardware with less capabilities than your users, a serious problem if your build machine is much more capable (things like SSE version play a role).
See e.g. https://stackoverflow.com/questions/52653025/why-is-march-native-used-so-rarely