There's a difference between being "sick" and being "weakened" with respect to a villager's health. A doctor can heal a villager only if their status is "sick" (and not weakened). A weakened status can be due to on-the-job injuries, prolonged sickness, or starvation. The only way to improve a weakened villager's health is to make sure that there is plenty of food, that your villagers are researching better medical technology, and switching them to a less hazardous occupation, if possible.
