The problem for any airline to fly 747’s out of SAN is that a 747 has more than 300-400 seats. That is a lot of passengers to sell. There is not enough passengers needed to fill a 747 to fly out of SAN profitably.
So the reason really is not operational, but economical.
The San Diego/Carlsbad/San Marcos area as of the 2010 census had a population of 3.1 million. Tijuana across the border has 1.3 million. That’s 4.4 million.
Tijuana has a lot of manufactures. San Diego is a major tourist destination.
I think the reason for the lack of 747 service at SAN is because more airlines are using twin engine aircraft. The 777 holds nearly as much as a 747. British’s 747 hold just over 300 while its 777-200 holds just under 300.