Why are arithmetic circuits interesting in the zero-knowledge world?
There are two main models of general computation: Circuits and Turing-Machines.
Describing the computation path of turing machines is what most mainstream programming languages try to do, however for cryptographic processing there are disadvantages associated with Turing-Machines. Namely, one has to deal with the memory and additionally, Turing-Machines are not exactly the most efficient programming model and all more efficient ones will usually add significantly more complexity, complicating the cryptographic protocols.
So, instead, what people do is they use circuits which can express many immediately interesting statements rather easily and you typically only have to specify processing for a handful of operations, i.e. what to do when encountering a multiplication and when encountering an addition. These two operations suffice to describe all functions though some are less efficiently described than others and many functions of interest happen to be small.
Why are circuit-based ZKPoK considered "generic"?
Using the above considerations they allow you to formulate proofs like "I know $x$ for some public $v$ and some public circuit $C$ such that $C(x,v)=1$" which makes them fully generic in the proven statement.
Is any specific (a.k.a. not based on circuits) "practical" ZKPoK able to be performed by circuits?
Any ZKPoK can be re-formulated in terms of a circuit-based one, the question then becomes how big the efficiency losses are and if potential composition benefits are worth it.
Are circuit-based ZKPoKs more efficient (in time or space) than specific ZKPoKs?
Usually the point of specific ZKPoKs is that they can exploit constraints and structures the generic circuit-based ones cannot, making specialized ones usually more efficient. The exception of course being statements about circuits where the generic circuit-based ones and the specialized ones will likely coincide to a large degree.