Although the intent is the same, 'run on' simply names the fuel, while 'run off' names the fuel source, which may have to go through a considerable process to become fuel. For example, those Baghdad generators may run off food waste, but they run on the methane (I suppose) which is created by processing that waste. At least, that's how I see the cases you have presented.
New words, one handy idiom, and a 2-minute quiz — delivered to your inbox to keep your streak alive.