Drugs killed Haim, but Feldman has admitted being a heroin addict for years. He’s supposedly clean now, but the damage to his reputation (and insurability) was done.
I don’t think it’s his drug past that is hurting him anymore. He’s been largely clean for at least 15 years.
Part of it is that he’s typecast as a 12 year old child and he still looks like that 12 year old child, despite that he’s a 40 year old man.
I think part of it is that he’s got a very distinctive face. Good working actors look like an everyman and he doesn’t look like an everyman.