As @stewbasic succinctly pointed out in a comment:
The miner does not pick a hash. The miner picks a header, from which the hash is computed.
The block hash is the digest of hashing the block header with SHA-256d. This digest must meet the difficulty requirement when interpreted as a number, and since it's unique is also used as an identifier for the block.
The hash cannot be picked arbitrarily, as that would require you to revert a hash function. This contradicts the pre-image resistance property of cryptographic hash functions which states:
Given a hash h, it is difficult to find a message m that for which h = hash(m).
In fact, the proof-of-work puzzle of trying to find a block which has a specific prefix is essentially requiring miners to solve a much easier sub-problem: finding a partial pre-image.
In conclusion, the only practical way for a miner to pick a block hash is by finding a block header whose digest meets the difficulty statement.