If there is nothing wrong with the dog, once I determine that, then I get very tough about the eating thing.
Dogs can easily get habituated to certain criteria when they eat. Meaning, that occasionally people train their dogs to eat only under certain circumstances without realizing they are doing it.
If there is nothing wrong with the dog, here is what I would do:
Set meal times. AM and PM is reasonable. Stick to regular meal times.
Prepare food, put the dog in a confined area, a crate is ideal, or you can gate off a room with a baby gate.
Let dog have access to the food for 10 minutes, UNDISTURBED. No talking from you, no standing by to watch, no hand feeding.
After 10 minutes remove the food. Give the dog no access to other food until the next meal time. If the dog did not consume all the food at the first meal, offer half what you did the first time.
If the dog does not clean up the second meal, skip the 3rd meal, and offer the half amount at the 4th meal.
I would continue to put down food and remove it after 10 minutes until the dog decides that what you put down is delicious, and IT WILL. You have to have some guts tho, for this method to work.