Funny thing is, that I can manually remove $ and it works perfectly. I can't understand how to do it by script.
As a half-ass solution, I can manually change range from =Sheet1!$B$1:$Z$1 to =B1:Z1 and than copy data validation property by script from this cell to all my sheets in the document, it works fine, I have relative links.
Bad things that copying cell doesn't work between documents the same way.
But! Another half-ass solution is to copy one whole sheet with this manually healed relative data validation from one document to another ;-) so in my other document I will have data validation with relative links and can use it in my another doc.