You need to know if you're talking to the server you think you're connecting to, otherwise a man-in-the-middle could impersonate the server and intercept the handshake to see the hostname you're trying to connect.
So you need another channel to pull a public key (or something comparable), and they picked DNS for that