The problem with equation is that it uses the default math font (which I didn’t really think/know about before), therefore strong() has no effect on it. To fix this, you have to use some other typeface that has a bold font.
Because even though the it is the first positional argument, you still can use .with() with named arguments, which wouldn’t interfere with positional arguments. It won’t work if you set/pass positional arguments and first argument should be it. In other cases .with() nicely reduces code clutter.
I expanded the post with a new solution for Typst 0.12. I also added the now missing context from the show figure.caption rule because counter.display should be used inside a context.
This is technically correct as, according to @laurmaedje, it was kind of more luck that it even worked at all and now it doesn’t anymore. The correct solution would be to pass the location of figure.caption to the counter with .at() but since .location() of figure.caption() returns none, the next best and (for now) correct way is to nest the figure.caption() show rule inside a figure show rule and use its location.