Rest, to actually answer your question:
"Canteen" tends to mean commissary associated with an office/factory. You CAN also use "Cafeteria" in the same way, but "Canteen" is more specific, more normal.
"Cafeteria" can mean the cafe/restaurant, for customers, YOU FIND IN A LARGE DEPARTMENT STORE. (Typically either in the basement or on the top floor.)**
"Canteen" - generally - tends to be a bit derogatory and/or old-fashioned.
Note that a "Cafeteria" is specifically more down-market (cheaper, worse) than a "restaurant." Specifically note that "Cafeteria" always implies you get the food from a long service area - with trays, you know? And carry the food yourself, on trays, to an unserved table. In contrast at a "restaurant" or "cafe" you sit down and are served.
Generally this is all more UK than USA, as others have pointed out.
In my opinion -- both words would be easily understood, by every English speaker, in every country. If you said "the factory canteen" (or cafeteria) every English-speaker everywhere would understand you - but to repeat point (5), it is odder and perhaps "British-sounding" in the USA. There are some claims by commenters from the USA that some people in the USA would not know what the word means.
**Just FYI, in a SHOPPING MALL, there is always an area with a number of fast-food places arranged together. This is always called by the silly term "the food court."
Footnote: in the USA (and indeed, perhaps UK too), in certain circles "Canteen" can be a bit trendy-cool-retro. Particularly in connection to the film or advertising industry. Thus, in Hollywood California, in the 90s there is (or was) a painfully "hip" expensive restaurant just called "The Canteen." Even though the name is seemingly dowdy, the reference is to the ultra-trendy "canteen" on a film-set or at a movie studio.
Finally as Keith mentioned, "Canteen" also means a water bottle, particularly military (both UK and USA).