Giving cash directly does work, but it is a part of a solution in resolving a larger problem, like getting out of the car dependent suburbia schema that is considered unsustainable.
It's dependent on the person you're giving money to. Giving a drug addict money won't make a difference for anyone except the drug dealer that's going to end up with the cash.
In the aggregate, drug usage is not enough of a problem for distributing money to not be of massive benefit to the poor. Nor is it enough of a problem to financially or morally justify the various schemes people have come up with to cut off drug addicts financially or to discourage drug usage by paying them in scrip. Giving money to everybody blindly with the awareness that statistically some will waste their money is better than any alternative.
That drug dealer spends money. Cash flow makes the economy work.
Give cash to a rich person and they make a bet on what they think people will buy. Consolidate the wealth and we're back to central planning / command economy.