Il ne se plaint pas car la sous-requête renvoie 2 résultats mais deux colonnes. Mais même si elle ne renvoyait qu'une seule colonne, elle renverrait 2 résultats et la requête principale ferait de même.
Pas besoin de sous-requête dans tous les cas :
SELECT s.shopname
FROM Shopstable s
JOIN OrdersTable o ON s.shopnum=o.shopnum
GROUP BY s.shopname
ORDER BY count(*) DESC
LIMIT 1