The "--shadow-builtin" option was never released. You can just remove it.
It was supposed to be a marker you would add to a function if it had the same name as a builtin, and defining a function with the same name as a builtin without it would then be an error.
This was supposed to prevent issues if people define e.g. a "test" function, which would then break every use of the test builtin that isn't specifically prefixed like builtin test. But it turned out to cause its own set of problems and was reverted, along with the change that would forbid functions named like builtins, before it made it into a release.
You can see that the commit that introduced --shadow-builtin and the commit that removed it again both appear first in fish 2.4b1 (as git tag --contains will tell you, or the github interface which shows it below the commit message).
It appears that at the time you followed fish's development instead of sticking to a release.