envsubst is an external executable and thus not part of Bash; external executables are platform-dependent, both in terms of which ones are available as well as their specific behavior and the specific options they support (though, hopefully, there is a common subset based on the POSIX specifications)
Commands directly built into bash are called builtins, and only they can be relied upon to be present on all platforms.
To test whether a given command is a builtin, use
type <cmdName>
In the case at hand, running type envsubst on macOS 10.13 returns -bash: type: envsubst: not found, from which you can infer:
envsubst is NOT a builtin
envsubst is not in your system's $PATH (and thus likely not present on your system)
(By contrast, running the same on command on, e.g., a Ubuntu 12.04 system returns envsubst is hashed (/usr/bin/envsubst), which tells you that the utility is present and where it is located.)
A makeshift alternative to envsubst is to use eval, although the usual caveat applies: use eval only on strings whose content you control or trust:
Assume a sample.txt file containing text with unexpanded variable references; e.g.:
envsubst expands only environment variable references
whereas eval will expand shell variable references too - as well as embedded command substitutions, which is what makes use of eval a security concern.