When you build a project, Unity only includes the Shader Variants in the build that the Materials of the project are currently using. Because Unity has to compile Shader Variants at build time, changing keywords on a Material at runtime can require using a Variant that Unity hasn't built.