It is my understanding that contextual kerning can’t interpolate and thus will not work in variable fonts. My question is if this is a Glyphs limitation, or a limitation of the spec?
It will work in a variable font. It will just not interpolate.
It’s a limitation of how it is implemented currently.
Update 2022-10-03: there is a (yet undocumented) way to get it to interpolate in a variable font. Use this syntax for the four-number value records:
pos a b' c <100 0 0 0 (wght:1000) -100 0 0 0 (wght: 500 wdth: 125) 0 0 0 0>;
Use internal coordinates for the parentheses. You can use multiple values for multiple design space positions, they do not need to reflect the positions of the masters, but it is probably a good idea to include master positions (because otherwise the first default value is taken).