Typically when languages introduce new letters, they place them after the already-existing ones. This happened when Greek introduced Υ υ upsilon (from a variant of Ϝ ϝ digamma which of course occupied an earlier position), Φ φ phi, Χ χ chi, Ψ ψ psi, & Ω ω omega; it happened when Arabic introduced ث tha, خ kha, ذ dhal, ض dad, ظ za, غ ghayn, & ء hamza; and it happend with Cyrillic (here exemplified by the Russian alphabet) Ц ц tse, Ч ч che, Ш ш sha, Щ щ shcha, Ъ ъ yer, Ы ы yery, Ь ь yer', Э э e, Ю ю yu, & Я я ya.
I should note here that there is another pattern that also commonly occurs, when two variants of the same letter become interpreted as distinct letters, and the newly independent letter is inserted directly after the original. This occurred in the Latin alphabet with I i & J j, as well as U u, V v, & W w.
This is exactly what happened with Latin Z z (and also Y y). The Archaic Latin Alphabet essentially copied the Etruscan Alphabet, so it inherited Z z in its original position in the alphabet.
Around the 3rd Century BCE (still the Old Latin Period), Z z was dropped entirely from the alphabet, and G g (originally a modified C c) took its place (something that is rather surprising).
In the Classical Period, around the 1st Century BCE, the letters Y y and Z z are introduced from Greek and, as expected, they are added to the end of the alphabet. The fact they are (recent) loans from Greek is clear from their names. Y y is explicitly called ī Graeca "Greek I", and Z z is called zēta (a direct loan of the Greek name, rather than an inherited acrophonic Etruscan name which would have been either *zē or *ēz).
It's because of the period where Z z wasn't in the alphabet that it ended up occupying the final position.