... D3 has its own peculiar logic, with selections, transitions and the like. Learning D3 is more than learning javascript or another javascript library, it's also adopting a certain way of considering visualization, events, flow, relationship between data and visual objects etc. and I am very fond of that process.
Processing, by contrast, has a very different approach to things, and that Processing approach, in itself, is worth learning it. Processing programs are typically built around a main loop, and at each iteration the whole scene is redrawn. Being familiar with that logic actually enables you to take your D3 further. Some of my D3 vis are built like Processing sketches.
Another interesting aspect of Processing is its immediacy. You are manipulating physical objects, so it's much more direct to make stuff. Compared to Processing there is a lot of overhead in D3. So, it's much easier to sketch in Processing.
It's also easier to work with images using Processing, either read them or write them. Also, independent agents are easier to implement. There are tons of functions that can be used for generative art which are there out of the box in Processing and which would be a pain to get to work in D3. Also: 3D. Easy in Processing, a pain in D3 (despite the name).
D3 goes beyond being just a library. I intend to make it my main data visualization tool, and I've been working on my knowledge of it.
But I'm thinking of learning Processing/P5 as well. (And I'm leaning towards P5, as I'm reluctant to dive into Java for now.)