Say you want transform a collection of data. Doing it using chains of map, filter and friends will create intermediate collections in an eager unpure language.
Transducers are oblivious to the context in which they are being used, and transforms each element in turn. They can be extended at each end and do not create intermediate results. Thay are of course not only useful when tranforming collections, but also in places where data flows in one direction like Async channels.
I wrote this (and the accompanying code) some time ago. Some people liked it as an explainer to transducers: https://srfi.schemers.org/srfi-171/srfi-171.html