The Gini coefficient is the normalized difference of two areas under the curve (AUCs), and these curves are Lorenz curves. By definition, a Lorenz corve is a curve over x=[0,1] through the points(0,0) and (1,1), and the second derivative of a Lorenz curve is >= 0, so these curves are konvex (i.e. y(x) < x for x=]0,1[), and at most linear (y(x)=x). This in turn means than the AUC of a Lorenz curve is neccesarily between 0 and 0.5, and the AUC for the uniform distribution is 0.5 (i.e., the maximum possible value).
The Gini coeffficient is
G = (AUC[var]-AUC[unif])/AUC[unif]) = (AUC[var]-0.5)/0.5,
where AUC[unif] and AUC[var] are the AUCs of the Lorenz curves of the uniform distribution and of the distribution of the variable of interest, respectively. From definition follows that AUC[var] = 0 and hence is G>=0.
I would add that there are cases when total distributed mass is received by a population fraction smaller than unity. This means that there may be exclusion of part of population. In this cases Gini index may be bigger than 0.5, a frequent situation in income, wealth, priviledges and land distributions of thirld world regions and nations.
Another point to mention is that Gini index is not univoc (it is polysemic). There may be many diferent distributions for same Gini=0.4, or for Gini=0.6, for example.
I found those results ordering data from rich to poor, or from top to low values. Classical Gini indexes are estimated for low to top values of variable assuming that all population have acces to variable K>0. If they considered excluded populations, their Gini index might be bigger than 0.5. But this particular cases are seldom mentioned in textbooks.