Switzerland has no flat national income tax. Federal tax (Direkte Bundessteuer) is identical everywhere, but every canton sets its own cantonal tax mechanism, and every municipality within that canton sets its own communal multiplier on top. Zurich and Zug both compute a progressive "einfache Steuer" (simple tax), then multiply that same figure by a cantonal multiplier and, separately, by a communal multiplier. Zug's multipliers (82% cantonal, 52% City of Zug communal, a combined 134%) are far lower than Zurich's (95% cantonal, 119% City of Zurich communal, a combined 214%), which is the entire reason Zug nets meaningfully more at the same gross salary.
Geneva works differently again: its cantonal bracket table already produces a base tax amount directly, and cantonal and communal layers are each a percentage surcharge ("centimes additionnels") on that same base figure, 48.5% cantonal and roughly 45.5% for the City of Geneva. Geneva also applies a flat 12% statutory reduction to the cantonal portion only, not the communal portion. The net effect is a steeper overall tax burden than Zurich at comparable income levels, consistent with Geneva's reputation as a higher-tax canton.
Federal tax, AHV/IV/EO, ALV, and BVG pension contributions are identical across all three cantons and don't explain any of the gap. The entire difference in take-home pay you see in this calculator comes from the cantonal and communal tax lines alone, which is exactly why the canton and municipality you're legally domiciled in matters as much as your gross salary.