I am on WatchOS 10.3 and still faced this issue. I wrote a watch-only app that always disappeared from the watch after a short amount of time. As VB^ noted previously, the app was also deleted immediately if I opened the watch app on the iPhone. What solved it for me is:
In Target/General/Deployment info: Make sure that "supports running without IOS app installation" is checked
In App Icons: make sure that "include all app icon sets" is checked