First: the obvious question should be: is this module needed? This is to support using (probably multiple rather than just one) GRE tunnels behind NAT. If no GRE tunnel is used, the question becomes moot.
Now what happened? It appears Ubuntu 19.04 is using kernel 5.0 and there were a few netfilter reworking started from this kernel to factorize some separate netfilter modules back to core (ie: not as a module) to have an overall gain in size or help further netfilter features. This module was "axed" as part of this rework.
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/log/net/ipv4/netfilter/nf_nat_proto_gre.c?h=v5.0
path: root/net/ipv4/netfilter/nf_nat_proto_gre.c
Age Commit message (Expand) Author Files Lines
2018-12-17 netfilter: nat: remove nf_nat_l4proto struct Florian Westphal 1 -61/+0
2018-12-17 netfilter: nat: remove l4proto->manip_pkt Florian Westphal 1 -41/+0
2018-12-17 netfilter: nat: remove l4proto->nlattr_to_range Florian Westphal 1 -3/+0
2018-12-17 netfilter: nat: remove l4proto->in_range Florian Westphal 1 -1/+0
2018-12-17 netfilter: nat: remove l4proto->unique_tuple
Of course the functionality is still there. Last commit comment, emphasis mine:
netfilter: nat: remove nf_nat_l4proto struct
This removes the (now empty) nf_nat_l4proto struct, all its instances
and all the no longer needed runtime (un)register functionality.
nf_nat_need_gre() can be axed as well: the module that calls it (to
load the no-longer-existing nat_gre module) also calls other nat core
functions. GRE nat is now always available if kernel is built with it.
[...]
So if Ubuntu had some hardcoded list of helper modules to load, the list wasn't updated to drop this one and a few others in the same case. You should safely ignore the error, or report the minor bug.