It's because of terminal devoicing of voiced fricatives.
Daniel Jones in his An Outline to English Phonetics explains that when the phoneme /z/ occurs initially or finally, it's generally partially voiceless.
He says:
When initial, as z in zeal /zi:l/, the sound usually begins without voice and ends with voice; when final, as z in please /pli:z/, the sound usually begins with voice and ends without voice. (Section 788)
He speaks of /ʒ/ also in the same section. He says word final /ʒ/ and /z/ are devoiced towards the end of articulation.
Jones further says that when /z/ is word final and preceded by another consonant, a completely voiced sound is generally used.
So the s in words like beds, sounds, heads etc. resembles a weak s.
Jones says that other voiced fricatives such as /v/ and /ð/ can also get devoiced word finally but not to the same degree as /z/ and /ʒ/.
In summary: According to Jones' observation, /z/ tends to be devoiced by some speakers to a considerate degree in final position and especially when preceded by another consonant.
Quoting from Science Direct:
Voiced fricatives are often taken as an example of sound that is ‘difficult’ to produce. It might therefore be expected that speakers would choose to simplify them. In English, the most common simplification is devoicing, especially for voiced sibilants. The nature of this process was examined in productions of /z/ and /s/ by four speakers of American English. These were recorded in matched word and phrase positions using acoustic, airflow, and electroglottographic (EGG) data. Although many tokens of /z/ showed little or no vocal fold vibration in the EGG signal, durational and aerodynamic differences maintained the distinction between /z/ and /s/.
For example the word "yours", according to IPA, should be pronounced as your"z", but I almost always heard your"s".
It's really frustrating they keep telling me it should be "z" but I keep hearing "s", what happened here?
They will tell you that the sound at the end is voiced. In fact, when it's not followed by a voiced sound, it's usually partially (and sometimes completely) devoiced.
Also note that when you're transcribing a devoiced /z/ sound, make sure you write a small round circle under the 'z' i.e. [z̥]. This small circle indicates 'devoicing'.