One of the reasons you may not find ship's ball caps at Canex is because the ships themselves protest it. Ball caps and other crested items are big money makers for ships' canteens, which in turn provide the money for the Ships' Funds. The sale of ships' ball caps through Canex cuts into ships' profits as Canex does not royalties to them.
Another thing to consider is that most people who have a ship's ball cap have some connection with the ship, having either served in it, visited it or have had a connection with someone on board. In all of those cases, the most likely source of the cap would be the ship itself. I would argue that the number of people going to Canex to buy ships' ball caps would be very small. After all which Blue Jays ball cap would be more valuable to someone, the one they bought at Zellers or the one the bought at the stadium?