Non si lamenta perché la sottoquery restituisce 2 risultati ma due colonne. Ma anche se restituisse solo una singola colonna, restituirebbe 2 risultati e la query principale farebbe lo stesso.
In ogni caso non c'è bisogno di una sottoquery:
SELECT s.shopname
FROM Shopstable s
JOIN OrdersTable o ON s.shopnum=o.shopnum
GROUP BY s.shopname
ORDER BY count(*) DESC
LIMIT 1