As far as I know, the hotwords are static because the detector uses a neural network pretrained specifically for those words. Training a new network for a custom hotword would require way too much training data. While it would be possible to instead use a generic network that decodes any type of speech – like it does when in full speech-to-text mode – and then use the outputted representation to compare to a custom hotword, that would be far more compute and power intensive, whereas the specialized network is relatively small. (The specialized network is also probably more accurate.) At least on battery-powered devices, more power usage for something that‘s always running is a dealbreaker. The same pressure doesn’t necessarily apply to home devices that are always plugged in, but all of the major in-home voice assistants also run on phones, and the providers probably prioritize a uniform user experience across devices.
Disclaimer: I could be completely wrong, and/or the situation could change over time due to improved hardware and software. There was a rumor earlier this year that the Google Assistant might add custom hotword support in the future:
https://9to5google.com/2018/01/29/google-app-7-20-assistant-...
Main source: Apple’s article about “Hey Siri”:
https://machinelearning.apple.com/2017/10/01/hey-siri.html