If you place a custom player head with a command and then destroy it with setblock or fill in the same tick, the drop is a default player head. However if you place the head with the command, then wait, and then destroy it, the correct drop results.
- In the same tick, and at the same block location run: /fill X Y Z X Y Z air destroy
→ A default player head drops
- Run the /setblock command again
- Wait and then run the /fill command
→ Notice the correct player head drops