Wbrew temu co napisali inni - różnica jest spora, w szczególności w przypadku cmath.
math.h to stary nagłówek pochodzący z biblioteki standardowej C. Tymczasem cmath to nowy nagłówek z C++a, wykorzystujący między innymi przeładowania funkcji, szablony i noexcept. Najłatwiej zobaczyć co dodaje cmath, po prostu otwierając ten plik ;)