I will answer in two parts:
1): Assuming this is meant in the Black Scholes sense (one dimensional diffusion), here is an alternative explanation motivated by the convexity of the option price. In simple terms, if you plot the Back Scholes Call price as a function of S, you get this convex curve (blue curve):

Now if you draw the tangents at two different points (red segments), you see the tangent to the right is steeper, meaning the tangent (delta) increases. Change of slope is gamma, so increasing slope means positive gamma. And if you don't want to worry about drawing the tangents, it is easy to see visually that if you walk along the blue curve: in the middle of the chart (the middle two horizontal boxes), you cover approximately two vertical grid points per two horizontal grid points, whereas, on the rightmost side, you cover almost two vertical grid points per one horizontal grid point, so we can see the slope is increasing. Which means positive gamma.
If you plot the put price, you get a similar convex curve.

The slope is now negative and it becomes less negative as you move to the right, meaning it increases, which again means positive gamma.
2): The above behaviour is model dependent in a way as highlighted in the previous answer by reference to Joshi's comment. The equivalent statement in our settings is that the price is not always convex function as explained in this paper:
Bergman, Y., Grundy, B., & Wiener, Z. (1996). General Properties of Option Prices. The Journal of Finance, 51(5), 1573-1610. doi:10.2307/2329530
The abstract of which provides a perfect summary of the argument:
When the underlying price process is a one-dimensional diffusion, as well as in certain restricted stochastic volatility settings, a contingent claim's delta is bounded by the infimum and supremum of its delta at maturity. Further, if the claim's payoff is convex (concave), the claim's price is a convex (concave) function of the underlying asset's value. However, when volatility is less specialized, or when the underlying process is discontinuous or non-markovian, a call's price can be a decreasing, concave function of the underlying price over some range, increasing with the passage of time, and decreasing in the level of interest rates.