Es beschwert sich nicht, weil die Unterabfrage 2 Ergebnisse, aber zwei Spalten zurückgibt. Aber selbst wenn es nur eine einzelne Spalte zurückgeben würde, würde es 2 Ergebnisse zurückgeben und die Hauptabfrage würde dasselbe tun.
Keine Notwendigkeit für eine Unterabfrage in jedem Fall:
SELECT s.shopname
FROM Shopstable s
JOIN OrdersTable o ON s.shopnum=o.shopnum
GROUP BY s.shopname
ORDER BY count(*) DESC
LIMIT 1