it is for the simple reason, Only very few languages in the world has equivalent pronounciation as Thamizh. (French, malayalam etc). when English speaking people recorded Thamizh as Tamil for their pronounciation and writing comforts that become known as Tamil. it is also helps other people recognize. when you say Thamizh some may think it is new language.
The proper English way to spell it is Tamil, since the "ZH" is not natively pronounced in English as the L-like sound it is intended to be used as. The "ZH" is used as a marker for Tamilians who are able to pronounce the "ZH" as it is intended.
So basically it is only spelled with the "ZH" when the intended audience knows the proper pronunciation. When the audience is mixed (like on the internet or pretty much any place outside of of Tamil Nadu), you would use the standard English spelling of Tamil.
Also it would be Tamizhan when pronounced with the "ZH", and would be Tamilian when the l is used.