That's like saying what's better, lemonade or tires.
They serve two different purposes.
Unless for some reason you need to know exactly where something is on the network, at any time, no matter what, come hell or high water, no exceptions, there's no reason for static IPs on general stations of a private network. Somebody has to keep track of assignments, what addresses are used by whom, what addresses are free, and somebody's gonna miss something and stuff isn't going to work because two or more claim the same address. The administrative hassle has no payoff.
That said, servers, printers, routers, etc. HAVE to be at a known address. Those are static.
Everything else is DHCP, nobody cares what their address is, as long as they can use the network.
So if you're talking about general PCs on a work network, or just a few PCs at home, then DHCP is MUCH better, and got my vote on that basis.
Finally, there's still the administrative task of making sure static devices don't have addresses in your DHCP pool, which is a simple matter of designating ranges to use. For my work, if I'm setting up a basic Class C private network for a customer, they'll have a 192.168.x.x address with a 255.255.255.0 subnet. I'll put the default router at .1, other routers if any consecutive with that, servers in the high single digits. I'll put managed switches in the teens, printers in the forties and fifties. I'll let the phone guys have the 80s and 90s for their stuff, if they even need that many. If they have IP phones, those will be DHCP or another range, depending on Avaya, Cisco, whoever.
I usually put the century numbers (100-199) in my DHCP range, and leave 200-254 free for weird stuff, like cameras, digital recording, whatever.