The question of ethics comes up a lot in regards to cryptography. At its core, things tend to only require encryption if, for some reason, someone doesn't want them seen. More often than not people do not mind others seeing their good, moral deeds. What's interesting about the Zimmerman deciphering is that the morals in question have nothing to do with the encrypted information, but rather what was done with it.
On the one hand, what Admiral Hall did was incredibly immoral. He actively chose to withhold information that could potentially prevent countless American deaths. The United States had already lost over a hundred lives to German submarine warfare, which is why the President was so adamant to prevent future attacks of that nature. By actively withholding the information within the Zimmerman telegram from America, the Admiral made the choice to endanger the lives of Americans should his cryptographers fail to break the rest of the cipher before Germany mobilized its fleet.
On the other hand, what Admiral Hall did was not necessarily immoral but rather pragmatic. If the Germans had discovered that British forces could decipher their messages, the encryption techniques would have only become more sophisticated. This increased sophistication would have seriously hurt long term war efforts, which (since the war continued on for many more years) would most likely have resulted in more lost lives than would be found from the submarine warfare.
Also, there is no telling what the Admiral would have done with the information had his analysts not cracked the rest of the cipher in time. Singh describes a situation where the Admiral was waiting for the rest of that decryption in case a caveat, or some other relevant piece of information, was revealed in the rest of the text. It is entirely possible that, in the event his cryptanalysts had failed to decode the rest of the telegram, he still would have passed the decrypted message onto the Americans.
In cases such as these, and in any case of war, it is difficult to talk in terms of morality. Rather, it is clear that the actions the Admiral took worked out favorably in the end. Had the message not been deciphered at all, or had the Admiral never revealed the message to the Americans, we would be telling a very different story today.