It seems like in the underlying AWS API there are two different ways to assign a NAT gateway to a route, but when reading this data back from AWS it gets normalized to always be assigned to using nat_gateway_id. The provider doesn’t seem to understand that these two are equivalent and so it’s generating a plan to switch it back to how you wrote it, instead of how it is expressed in the response from the API.
If so, an immediate solution would be to change you configuration to use nat_gateway_id instead, so that your configuration will match how the API or provider is expecting this argument to be set.
Might also be worth opening an issue for this in the AWS provider repository if there isn’t already one about it, because ideally the provider would notice that these two situations are equivalent and avoid switching to a different way to write the same information.