The definition of covariance between two random variables $X,Y$ is $Cov(X,Y)=E(XY)-E(X)E(Y)$. Zero covariance means that $E(X,Y)=E(X)E(Y)$. But the independency condition is much stricter: $E(g(X)h(Y))=E(g(X)) E(h(Y))$ for any functions $g,h$. To give some intuition on the difference, I will assume that $X,Y$ are smooth (infinately differentiable) random variables and Taylor expand both functions. I will be expanding around zero in order for the presentation to be clearer. Doing so, gives
$$g(X)=\sum_n\dfrac{1}{n!}g^{(n)}(0)X^n$$
where $g^{(n)}$ is the $n-$th derivative of $g$, and similarly for $h(Y)$. Then using the linearly of $E(\ .)$, namely $E(aX+bY)=aE(x)+bE(Y)$ for $a,b$ constants, we get
$$E(g(X)h(Y))=\sum_{n,m}\dfrac{1}{n!m!}g^{(n)}(0)h^{(m)}(0)E(X^nY^m)$$
Now, if $Cov(X,Y)=0$, then the $n,m=1$ term simplifies through $E(X,Y)=E(X)E(Y)$ but we can say nothing about terms containing $E(X^nY^m)$. This shows you that covariance measures independence on a "linear level", whereas dependence of two random variables is much more general that their correlation.
Remark for applications: For $x,y$ ($x,y$ being the realizations of $X,Y$) sufficiently small, then we might be able to approximately treat them as independent (although they are not), which is what we do in any system in which we care about understanding its behaviour when $x,y$ are small (we do this a lot in physics). More concretely, if we can neglect all powers $n,m>1$, then we can approximate uncorrelation as independence.
So, as you can see, in order to have independence between $X,Y$, $E(X^nY^m)=E(X^n)E(Y^m),\ \forall n,m$. If this is the case, we can write the second Taylor expansion as
$$E(g(X)h(Y))=\sum_{n}\dfrac{1}{n!}g^{(n)}(0)E(X^n)\sum_m\dfrac{1}{m!}h^{(m)}(0)E(Y^m)$$
and using linearity and the Taylor expansions of $g(X)$ and $h(Y)$, we arrive at the final result:
$$E(g(X)h(Y))=E(g(X))E(h(Y))$$