I think all of us have run into this issue at least once. At first, it is suprising, but it does make sense as is explained in the manual. What I always do is using fake hashes for new derivations. Those can never be satisfied.
There is lib.fakeHash
from Nixpkgs, but nowadays I simply use:
hash = "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=";
EDIT: See also What is the latest best practice to prefetch the hash? - #5 by jtojnar