From next year on there is a direct Zurich - Firenze train, operated by SBB. However if you try to book this on sbbswiss.org you usually cannot do so.
The reason is that this train takes the old line from Milano to Firenze, and so you are quicker if you change to a FR in Rogoredo, and that is the solution the SBB website gives you.
Given that the direct train is 1 ½ hour slower than changing trains I also wonder what the point of that service is…