It's due to floating point inaccuracy, which affects all languages with floating point representations. There are some values that cannot be accurately represented with floating point numbers.
Fortunately, Clojure also has support for high precision numerics, so you can do:
(defn triple [arg] (* 3 arg))
(triple 1.01M)
=> 3.03M
Note the use of "M" at the end of numeric constants to indicate that you want to use high precision numbers. In this case java.math.BigDecimal numbers are used by Clojure under the hood.