Ok it's something to do with keyboards / input sources localisation.
My Mac has a "British" keyboard, so the backtick key (also has tilde on it) is next to Left-Shift.
When the system Input Source setting is set to "U.S." or "US International - PC", then Cmd-Backtick works to cycle through windows. However when Input Source is set to "British" or "British - P.C." then Cmd-Backtick does not work, but Cmd-§ does (on this keyboard the ±/§ key is between Tab and Esc). That seems like it should be the other way around.
So maybe this is a MacOS keyboard-mapping issue? Or maybe it's always been like this and I just haven't switched the Input Source settings for ages? I don't know.