'What happened' is a very broad question, that in this context requires a multitude of answers.
What happened in spoken German
These words derive from old Proto-Germanic stems that indeed contained a [s] sound.
- *swōtuz for süß
- *sebun for sieben
- *sunþrą for Süden, main form of süd-
Throughout the course of sound shifts and two millenia, these sounds had differentiated into an [s]-version in Scandinavian and English (and early High German) and a [z]-version in some old version of Low German.
Dutch, traditionally only being a dialect of Old and Middle Low German, copied the [z] sound of these words.
Note that this rule is only valid for leading s followed by vowels. For example, in many Low German accents words like Stein were once or are still pronounced [st], not [ʃt]. This is also the case in Dutch (steen)
I can't tell you when exactly this shift happened, but I would assume it to be rather late, because it is only present the in Lower German area.
What happened in written German
From the first time they were written (which is probably around Old High German ages, think Charlemagne), they were likely written with s in German, even after the sound shifted.
In medieval times, there was no real problem with different languages using the same letter for different sounds. Thus, while Old English and Scandinavian used s to represent [s], Middle German used s to represent [z] and z to represent [s]. Yes, this is damn confusing. Phenomena like the Auslautverhärtung shifted some written s spoken [z] back to [s], and other phenomena made sure that a written s stayed [s] for quite a while, cf Stein.
Note that even English isn't as strict with words such as rise, wise where s represents a [z] sound, and s is a traditionalised spelling.
And there's more. Proto-Germanic *t turned into z ([s]) in some syllabic positions, but later into tz ([ts]) in others.[1] This tz sound eventually took over the z, so that in modern-day German, a z exclusively represents the [ts] sound. During this process, the usages of the older z ([s]) and the old s (usually [z]) merged into one grapheme s. (Most of the z actually turned into ss or ß, but that's not too relevant here.) So now there's no way German could use a z to represent [z], like English, French, Dutch, Polish and Czech do, because z is occupied with [ts].
And what about Dutch?
At some point in time, after the Netherlands were split from the rule of the Holy Roman Emperors (1648), the Dutch made an attempt to standardise their spelling and did a good job at it. Modern day Dutch retains the pronounciation of the corresponding German s sounds, but changed the spelling of the voiced s to z. Everywhere!
They could do that, because the Low German they derived from never took part in the High German Consonant Shift, thus never changed *t into z (spoken [s]) in the first place, cf. *lētaną -> lassen (German), laten (Dutch), let (English) or låta (Swedish), so the z was a letter free to use.
[1] This is called the High German Consonant Shift