"Swim teacher" or "swimming teacher"

Solution 1:

I am surprised that your girlfriend finds "swim teacher" more natural: In my (also UK) idiolect it is impossible.

"X teacher" (meaning "teacher of X"), X is usually (I would have said always) a noun, and nearly always an uncountable abstract: swimming, physics, calligraphy, elocution, French, carpentry, driving. The cases I can think of where it is countable are musical instruments (violin, piano), but in these cases you can paraphrase as "teacher of the piano", where "the piano" is a sort of universal, and hence again uncountable even though it "piano" is normally countable.

"Swim" as a noun is countable (even if the plural is rather rare), meaning "single event of swimming", and so does not fit into the pattern for me.

Solution 2:

Ngram using American English ... agrees with you.

Ngram

LINK

To be sure, here in America we probably prefer "flight instructor" to "flying instructor" or something. "Speech teacher" preferred to "speaking teacher".