So what about non-runners and villagers who refuse to do a skill due to a dislike, such as disliking fish or turnips?
Generally, I have found that these villagers will master the skill, even with their dislikes and running away. The key is to not force them into the ocean or crops (depending on their dislike). So let's say a villager dislikes fish, they will run away every time you put them in the ocean. So put them on the crops. They'll do their planting, think, and then run away. Don't mess with them. If you watch, they'll usually go back to some form of Farming — even fishing!
I had a set of twins that didn't like to fish. In this case, they were extremely stubborn. They absolutely refused to fish, and when they worked the crops, they ended up running away constantly when they would normally switch to fishing. So these two weren't progressing with farming at all!
So I switched them to Doctor. One twin mastered that overnight!

The other twin took her sweet time at it. I didn't make a big fuss over it. Only one time, when the gong took away health, did I manipulate the game on her behalf. I paused it and moved all sick villagers to a spot so she and ONLY she could do the healing. Surprisingly, that really didn't increase her Doctor skill all that much. But it seemed to help her remain focused on healing more.
Keep in mind that every villager I have is at least a Doctor Trainee with all Elderly villagers having that skill checked. That means any doctor villager I have has A LOT of competition! It's not unusual to have 5 or more villagers running to heal one sick villager.
But the younger doctor has the advantage of being able to walk faster. So she can get to the sick villager faster than the slow elderly villagers if the sick villager is far away from an elderly one (did you catch all that? :D).