You don't need to be able to do it, you just need to be able to understand code to some level, so that you can tell what you're buying isn't something that's going to screw you over in 6 weeks, months, or years time.
This. So much this.
Not everybody can become a great programmer. You can learn the ins and outs of the code and everything around it. Learn all the objects and functions. And still find yourself incapable of writing a complex code architecture minus the clutter. There is an extensive logic set required for programming. It does not come to everybody.
It is a lot like learning a spoken language. For instance, you can learn every grammar rule and every spelling. Yet find yourself incapable of writing a poetry in that language.
However, fathom this. If you were to have a thorough understanding of that spoken language and I presented you with a poem - you'd be capable of comprehending that poem. Understanding the message that those lines are trying to portray, check for the flow of the language and pick and point any grammatical or spelling errors in the poem as well.
This is the general reasoning behind asking most marketers to learn to program. They should be able to understand the code. Comprehend what it does. And have a fair idea of what/how much of work has been done to attain the objective given to the programmer.
As mituozo pointed out, there has to be a strong eye placed on the subtleties of the code written in order to ensure it doesn't break you down, rather than build you up.
Resource hogging is a common problem. Then there are cross-platform incompatibilities. Insufficient project research is another program - you deal with different logic sets when creating a wordpress plugin, while differently when creating a script that interacts with Google - a thorough understanding of the project is involved in either cases. Then there are security issues. Poorly written, outdated code can get exploited pretty easily. It also opens up your server to a lot of more vulnerabilities. And getting hacked, doesn't necessarily mean getting defaced. A hacker or any person with malicious intent, on gaining access, can do a lot of unimaginable shit, while keeping you out of the loop, which at the end of the day is another misgiving for your business.
//
For instance, somebody on WF contracted me last month to take a look at his website. His website had one page which was nothing but a simple three field form, where his users could enter their search query and the backend would query an API and return a particular set of data which was then displayed on the page. Everything looked fine from the top and so when I asked him what the problem was he said that the API he was using was a paid API and he was allowed upto 100,000 queries a week. For the past two weeks, he had maxed out this limit thrice resulting in him being charged a particular amount three times. He further stated that there was no noticable increase in the site's overall traffic, membership base and this was the only site he was using the API on.
When taking a look at the code, I was appalled. His older programmer was actually passing his API credentials (Vendor PIN and Password) on his site from the form through a hidden field via html. Do you know what this means? This essentially means you could simply hit "view source" and get his API credentials and utilize it in your own site/app or scrap the shit out of it until 100,000 queries were over. This took about 5 minutes to fix and once he changed his password, the API usage graph fell as if it were shot in the head.
//
Again, my entire point with the above story is that, when you hire a writer and he/she writes an article for you. You do go through it once and change things around a bit before posting it on your site, right? Then how can you blindly trust any form of code received from a programmer?
TL : DR - At least grasp the basics of programming. It forms an integral part of your business and is something that has to be paid special attention to. Either that, or get a competent, trustworthy programmer in on your team.