I don’t believe it’s possible to filter on dynamic zones using either the Entity Service API or the Query Engine API.
The easiest way to accomplish a filter on a dynamic zone would be to populate the fields you need from the dynamic zone on a .findMany() request and then filter manually (i.e. use .filter on the returned array). Obviously, this could be a major performance problem if you have a lot of entries in your dynamic zone but if this approach would work fine.
The other option is to use the underlying knex instance to run your own sql queries using the knex query builder functions. But each component type in your dynamic zone lives in a different table so you need to do multiple joins to be able to use a where clause on the component’s attributes.