In the case of homeless people in the US they often don't know what's best for them. Many are schizophrenic or otherwise mentally ill. Many are veterans. Even if they know they need treatment, who could give it to them? $300 might not be enough for even the first doctor's visit.
You really need to better qualify what you mean by "often" and "many." If 90% of homeless people would be able to make meaningful use of direct cash donations, would the remaining 10% be reason not to take that action?
I mean, I'm just making numbers up, but you aren't even doing that.
Mentally ill means stuff like PTSD, schizophrenia, addiction, bipolar disorder or dementia. Not "mentally retarded" or "vegetables". There's nothing wrong with most of their thought processes.