These two posts on flightsim.com shed a bit more light re why:
Why does Toronto's Pearson Intl Airport have code "YYZ"?
07-12-2003, 03:41 AM #7 Calb
"YZ" was assigned to Pearson long before it was known as Pearson International. Originally, Canadian designators were deliberately assigned so as to give little or no indication of their locale -- the letters chosen being purely arbitrary. There were a few exceptions -- or so it would seem: VR=Vancouver, WG=Winnipeg, OW=Ottawa, BR=Brandon and others. I think this "scrambling" was an attempt at security at the outbreak of WW2. It wasn't until the 70's that we saw widespread use of 3 letters to conform to the (then) ICAO standards. Canada never needed more than 2-letter designators -- there weren't enough airports and navaids to make 3-letters necessary. The U.S. on the other hand has always needed 3-letter designators and they prudently have a high percentage that "make sense", thereby making it much easier to remember. Many you can "decode" if you have at least a little familiarity with the area. The letters "C" and "Y" are taken from the Internationally agreed to list of designators for airports and radio station callsigns (broadcast, television, 2-way, Ham, CB, etc). In the U.S. "W" and "K" are used for radio callsigns but, as we all know, only "K" is used for airport and navaid designators. There may be other aspects to this subject but I think these are the high points.
Cal, CYXX (Abbotsford BC)
07-14-2003, 10:07 PM #18 deltabgjim
Calb, you're absolutely right about the two-letter identifiers in Canada, but the story goes back even farther than WW2. When the first Canadian transcontinental railroads and telegraph lines were built, each station had its own two letter Morse code. VR was Vancouver, TZ Toronto, QB Quebec, WG Winnipeg, SJ St. Johns, YC Calgary, OW Ottawa, EG Edmonton, etc. Over time, the Y was added to the front to indicate an airport rather than a train station and to differentiate from U.S. airports.
SIDEBAR: Similarly, the letter N was reserved as a first letter of an airport identifier in the States to indicate a Naval (or Marine) Air Station, e.g. NBC is MCAS Beaufort, SC; NQX is NAS Key West/Boca Chica, FL. Hence, the civil airports in Newark and Norfolk are EWR and ORF, respectively. Since YTZ was used to indicate Toronto City Airport (on the island in Lake Ontario near downtown), YYZ was selected for Pearson International (made sense to somebody). I'm not sure about Montreal (YUL). Perhaps UL is supposed to bring to mind Dorval, the little town where the airport is (or Hull, which is a couple hundred miles away). As far as the C in the four-letter ICAO code, allow me to explain. There are two coding systems for airports, ICAO (International Civil Aviation Org., a UN agency) and IATA (Int'l Air Transport Assoc., an airline industry group). ICAO codes are used for meteorological, route planning, and ATC. IATA (three letters) are used by airlines and travel agents. All continental U.S. airports start with "K" (KATL, KSFO, KDCA, etc.). Alaskan and Hawaiian airports start with "P". Canadian airports start with "C", etc. Most times, the ICAO and IATA codes are almost the same (KATL = ATL, CYUL = YUL). Many other times, they aren't, even in the U.S. (Hilton Head Island, SC, is KHXD in ICAO but HHH in IATA). Most airports in the UK start with EG. Hence, EGLL for Heathrow would probably spell out as Northern (E)urope, (G)reat Britain, (LL)ondon. Hence Gatwic(k) is EGKK. Across the Channel, similar conventions apply: LIRF is (I)talia (R)oma (F)iumicino, LFPG is (F)rance (P)aris Charles de (G)aulle. But when you book an airline ticket, the IATA codes kick in: LHR, LGW, FCO, CDG. What this boils down to in the sim world is this: if you're in FS2002, you're using ICAO. If you're in Airline Tycoon, you're using IATA.
J.Klotz, Delta Connection/Atlantic Southeast Airlines
http://www.flightsim.com/vbfs/showthread.php?39690-Why-does-Toronto-s-Pearson-Intl-Airport-have-code-YYZ