The mechanic may well be right, but a couple of things to check. 1) Worn engine mountings can cause the engine / box to move excessively, moving the linkage 2) The linkage may not be adjusted correctly in the first place, which could cause the gear to not be fully engaged. However, if the gear slips out when you are pulling up a hill or accellerating, chances are the synchromesh hubs are worn.
John, July 2008