Чем os.system() хуже чем модуль subprocess?
Ни чем не хуже, если вам хватает его возможностей.
os.system() запускает команду через shell, автоматически разбивая строку на аргументы, а в subprocess запуск происходит непосредственно вызываемого процесса, аргументы которому подготавливает программист в виде массива.

os.system() и небезопасен, и его возможности ограничены. Единственное преимущество — простота использования.