Only to the untrained eye - which surprises me that you would make this claim.
You see, an “ad hominem” is committed when a person makes a disparaging remark and relies on that remark as sufficient to make a case that rebuts the opposing argument.
That is not what Feser does, however.
True, he does say disparaging things about people who should know better, such as calling Jerry Coyne an “ignoramus on the subject.” Feser would be guilty of committing an ad hominem if he had left it at that and tried to pass off that disparaging remark as his entire case against Coyne’s antitheism, but that is NOT what Feser does. He goes on to show that Coyne actually is an “ignoramus on the subject” by showing where he goes wrong point by point, AND demonstrating that he should have known better, thereby proving that Coyne has earned the title Feser has bestowed upon him.
The reason an ad hominem is a logical fallacy is that the mere fact that you are “an ignoramus on the subject” is insufficient to make you wrong on a logical point. You might, simply by chance, be correct on some abstruse matter in the same same way that a dysfunctional clock happens to show the correct time by happenstance. The same could be true, for example, of “an ignoramus on a subject” - they might happen to get it right from time to time, which is why relying on the fact that they are “an ignoramus on the subject” does not, by itself, prove they are wrong.
However, this is not what Feser is up to. He does make disparaging remarks, granted, but he does not end there. He goes on to prove that his interlocutors are, 1) in fact, wrong, 2) that they should have known better and, THEREFORE, 3) they are also “ignoramuses on the subject.”
To the untrained eye, it may appear that “ignoramus on the subject” is only a premise - the only premise, ostensibly - in Feser’s argument, and, thus, he relies on ad hominems; however, the actuality is that “ignoramus on the subject” is a conclusion arrived at by Feser only after the argument is laid out by him and only after he demonstrates that his argument is, in fact, the classical (and well-formed) one that should have been the version fairly addressed by any right-minded interlocutors, instead of the caricature of an argument they have scared up. That they have continued to conjure up straw men instead of the actual, historical, well-formed arguments, considering that they “should have” known better, is what leads Feser to his conclusion of “ignoramus on the subject” - especially where professional philosophers are involved.
You see, these are quite different from each other:
- making a disparaging remark (not an ad hominem,)
- passing a disparaging remark off as an argument (an ad hominem) AND
- arriving at a disparaging remark, in passing or as a conclusion, about a person who should have known better.
Now, you might attempt to downgrade your assessment of Feser’s guilt from “a lot of ad hominems” to “lacking social graces,” but then you would still need to address his arguments, instead of merely claiming that he “makes a lot of ad hominems,” - which, incidentally, IS an ad hominem if you are trying to pass THAT off as a response to his arguments.
In all fairness, if you miss the “Read More>>” link which expands the remaining portion of his article(s) you might be left with the impression that all he does is commit ad hominems in his writings, but that would be an oversight on your part, not his. You do have to "Read more>>” to see his entire case in almost every instance on his blog. Better still, read one (or more) of his books.