Эта проблема существует не только в Питоне, но в других языках, где арифметические операции производятся над числами в двоичном формате (а это подавляющее большинство).
Многие десятичные дроби нельзя точно перевести в двоичный формат с плавающей точкой, т.к. получается периодическая дробь. При произведении операций с таким числом возникает погрешность, которая может стать заметна при переводе обратно в десятичный формат.
Модуль decimal реализует точное вычисление десятичных (отсюда и название) дробей за счёт снижения производительности и усложнения процесса работы для программиста. Во многих случаях (в т.ч. в вашем примере) такая точность не нужна, достаточно округления до фиксированного знака. Например, при вычислении длины в метрах можно округлять до третьего знака после запятой (до миллиметров) и т.п.