Causes of fluctuations in atmospheric oxygen in past 300 Mya
Here's a somewhat different looking graph, from Oxygen and Evolution,
Robert A. Berner et al., Science 316, 557 (2007):



The graph shows three marked drops in O2 levels, each corresponding to an extinction event. These are intervals 4, 9, and 11. Interval 9, the largest such drop, represents the end Permian event about 252 million years ago. Interval 11 corresponds to the end Triassic event, 201 million years ago. The unsourced wikipedia graph linked in the question has at most a superficial resemblance to this sourced graph.

Now for your two questions.


  What they don't explain, however, is why oxygen has declined for the last ~100 Mya. For example, is this explicable in terms of volcanism?


I would take even the sourced graph that I used with a grain of salt. That unsourced wikipedia graph: A very large block of salt is needed.


  They do explain the Permian decline in terms of volcanic activity, but why do volcanoes affect oxygen levels?


It is very widely conjectured that the end Permian extinction event was caused by the Siberian Traps. This extreme volcanism may have triggered coal fires, thereby reducing oxygen levels. This remains conjecture.

What isn't conjecture is that the end Permian event killed off almost all life extant at that time, including much of the algae and plants that produce oxygen. Without a continuous supply of new oxygen, oxygen sinks such as unweathered rock will inevitably result in a decline in oxygen levels.