Если коротко - различие в идеологии и подходе обработки данных.
Класс, в некотором роде - можно считать самостоятельным типом. Экземпляры класса, можно настроить так, чтобы вы могли складывать / умножать / делить / ... .
+ ООП, позволяет сократить объем и увеличить понятность кода (при его адекватном использовании).
Например, вы не можете записать в функцию данные и использовать вызов функции без аргументов ( на самом деле можно реализовать, но вы быстро откажетесь от этой идеи).