Most people shouldn't learn to program. However, this observation is a bit deceiving. I believe that everyone should learn to write scripts. I have seen way to many people waste time on a computer for tasks that should be clearly automated. Furthermore, these people usually have no idea that there is something better.
How much time would people save in aggregate if they knew a little bit about the tools they use? The average person shouldn't need to know about recursion, but why not a for-loop.