The non-generic overload of DbContext.Set returns an equally non-generic DbSet. One of the interfaces this class implements is IQueryable, again, non generic. That's the reason why it can't serve as input to any of these LINQ extension method that are defined on the generic type IQueryable<T>.
So in fact, if you still want to use LINQ, you only postpone the moment when you have to convert to a generic IQueryable. You could do...
var customers = db.Set(Type.GetType(...)).Cast<Customer>().Where(c => ...)
...but then of course you lose the whole point of defining the type dynamically, at runtime.
Once you start dynamically, you have to continue dynamically. One way to do that is by adding System.Linq.Dynamic to your project.
Then you can write queries like...
var customers = db.Set(Type.GetType(...)).Where("CustomerId = @0", 1);
...which will return you the Customer (wrapped in an IQueryable<Customer>) having CustomerId == 1.
You can even use the Find method:
var customer = db.Set(Type.GetType(...)).Find(1);
This will return a single Customer instance.
Localand what isIActionTarget? It would help if you could explain briefly here please.