filter processes the element itself; backdrop-filter processes whatever shows through behind it. That means the element needs some transparency (alpha < 1 background) for the effect to be visible at all — over a fully opaque background there's nothing behind it to filter.
The most common use is blur() for a glass panel, but the function set is identical to filter's eight functions.
It's heavier than filter, because whatever sits behind it keeps changing (scroll, animation) and the browser has to recompute every frame. Safari needed the -webkit-backdrop-filter prefix for a long time and it's still safest to ship both. Like filter, an element with backdrop-filter gets its own stacking context.
When to use
For translucent panels floating over content (nav bars, modals). If what's behind scrolls often, keep the blur value low — a large one eats scroll frame budget.