O problema não foi cron mas shell=True .
Aparentemente, ao usar shell=True , o popen espera uma única string e não uma lista.
Então, quando atualizei minha ligação para:
proc = subprocess.Popen(['service ' + name + ' status'], stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
tudo funcionou.