По всей видимости, восходит к той же основе, что и глагол врать. Современное значение существительного развилось, когда у глагола еще не было негативного оттенка. Таким образом врач – это тот, кто заговаривает, а врать в старые времена значило просто "говорить".
Этимологический словарь русского языка. — СПб.: ООО "Виктория плюс".
Крылов Г. А..
2004.