def: Rsq = 1 - SS(regression)/SS(total), Assuming "SS" = Sum Squared error, and that "SS(total)" means the variance in the data. This should be obvious, as R-squared approaches unity as a regression approaches a perfect fit.(i.e., Rsq = 1 - sum((data - regression)^2))/sum((data - datamean).^2))
there might be a few possibilities (I'll list 2 classical ones):
1 sample is not large enough
2 spurious regression, please check the distribution of the variables, and their correlation coefficients first.
there must be some other reasons, which need further investigation.