The Shapiro test is only applicable to iid samples, so it is difficult to see how it could be used to test normality of expression values in a linear modelling context. If you have applied the test to the normalized expression values for each gene, then I suspect that the test is actually picking up differential expression rather than non-normality.
The limma code is very robust against non-normality. All the usual microarray platforms and standard preprocessing procedures produce data that is normally distributed to a good enough approximation. Much effort has been devoted to developing good preprocessing and normalization algorithms.
The concept of "robustness" in statistical analysis goes back a 1953 paper by George Box in Biometrika. In that paper, Box wrote of the "remarkable property of robustness to non-normality which [tests for comparing means] possess". The tests done by limma inherit the robustness property that Box was referring to. Box made the point that the robustness of the two sample t-test was not improved by checking first for equal variances. He said
"To make the preliminary test on variances is rather like putting to sea in a rowing boat to find out whether conditions are sufficiently calm for an ocean liner to leave port!"
I rather think that, if Box was still alive today, he might say something similar about a preliminary Shapiro test!
Best wishes Gordon