Simplest illustrative example is single-core environments: it is possible to have concurrency there, yet no job would ever execute in parallel, because there is not enough resources to run all scheduled jobs simultaneously. In a more broad sense, system can have hundreds of tasks scheduled for execution, and even make progress within each of these hundreds, but not for all of them at the same time, making executing of them concurrent, but not parallel.
I like this visual illustration, while it is not being 100% accurate on all the nuances that can be in real system, general notion of what's happening is pretty good: