The reason for this is that the command density
uses by default a Gaussian kernel, which has support on the whole real line:
http://stat.ethz.ch/R-manual/R-patched/library/stats/html/density.html
A (non-optimal, but enough for practical purposes) estimator of the density for the positive data can be obtained by fitting a KDE to the log of the data and then transforming the KDE back as follows:
set.seed(1234)
Gamma<- rgamma(2032,shape=1.77, rate= 4.33)
hist(Gamma, prob=T,ylim=c(0,2), xlim=c(-1,2.5))
# Log data
hist(log(Gamma), prob=T)
# bandwidth for log-data
hT = bw.nrd0(log(Gamma))
# KDE for log-data
kde <- Vectorize(function(x) mean(dnorm((x-log(Gamma))/hT)/hT))
curve(kde,-6,2,add=T,col="red")
# Transformed KDE
lkde <- function(x) kde(log(x))/x
# Fit
hist(Gamma, prob=T,ylim=c(0,2), xlim=c(-1,2.5))
curve(lkde,0,3,add=T,col="red")