Summarizing the Blender documentation, tooltips, and source code, Clean Keyframes (the operator run for Clean Channels) is used to simplify an F-Curve by removing closely-spaced keyframes. The command will reconstruct an F-Curve with fewer keyframes (based on the distance ‘Threshold’ option), trying to mimic its tangents.
After Clean Keyframes is run, Clean Channels deletes the channel if only one keyframe is left after simplification. However, it will not delete the channel if the value isn’t the same as the property’s default value or if it’s being used by an F-Curve modifier or Driver.
In this screen recording, Clean Channels is run first, undone with Ctrl+Z, and then Delete Static Channels is run. Clean Channels leaves 6 channels while Delete Static Channels leaves 3. Clean Channels will leave the channels with one keyframe whose values aren’t the default value (the Rotation & Z Location channels in this example), while Delete Static Channels will do what is likely more desired and delete any channels that aren’t animating. Imagine using Clean Channels with a character rig or complex scene and you would still have a lot of channels doing nothing left undeleted!
Delete Static Channels determines the ‘Minimum Difference’ for deletion by the F-Curve’s keyframes’ minimum & maximum value as opposed to the value and distance ‘Threshold’ in frames from neighboring keys which Clean Keyframes does.
Finally, Delete Static Channels has more options. With the Channel Filter dropdown menu, it can be run with just Selected Objects or visible F-Curves: no keyframe selections needed. Clean Channels requires that all of the target channels are selected. It gives you the option to preserve any channel with an F-Curve Modifier and specify the minimum number of keyframes an F-Curve must have to avoid deletion.