Which is better for drug testing, blood or urine?

Blood is not necessarily better then urine. 

Urine is the standard for workplace testing in the United States.  Blood testing is invasive and the testing is expense ($150 +) and takes 4 – 5 days.  Mistakes happen because they don’t do very many.  Detection in blood goes back about 1 day.  Labs typically don’t have expanded panels for blood, just 5 or 10 panel; anything else would be specialty testing and very – very expensive. 

Blood analysis may be appropriate in situations when it is suspected that a person is actively under the influence of a drug or alcohol. Since drugs are rapidly metabolized and eliminated from the body, blood analysis offers a very brief detection window. Drugs in blood are typically detectable within minutes to hours, depending on the drug and the dose, versus one to several days in urine. 

I would actually recommend lab based oral fluid before blood for not-DOT post accident or reasonable suspicion.