This is something covered in any basic class that talks about numerical methods. (And why are you using methods about which you seem to have not a clue? Time to do some reading!)
Trapezoidal rule is about the simplest integration rule you can use (bested in that respect perhaps only by methods such as rectangle rule, or arguably Monte Carlo, athough Monte Carlo falls into an entirely different class of methods, so a bad comparison.) As such, trapezoidal rule is not expected to be accurate. So there should be no surprise at all in this.
The classical way to decrease the error arising from trapezoidal rule (which is what cumtrapz is) is to decrease the step size, thus increase the number of points.
There are other methods you can use. Surely you can find at least one Simpson's rule tool on the file exchange. It will be more accurate, BUT you need to respect that no numerical integration method will be perfectly accurate in something like this! If you have not a clue as to what Simpson's rule is, then you really do need to go back and read your class notes from some long forgotten class.)
Or, you can use a higher order Newton-Cotes rule, but beware of too high an order, as I would bet that they too can introduce interesting artifacts. As well, higher order Newton-Cotes rules have an issue at the end point, since your data may not have the correct number of points to make up a complete panel. Even Simpson's rule suffers from this flaw, since it really wants an odd number of points to work correctly.
Other methods are things like fitting your curve with a spline, then integrating the spline. fnint will do the integration. (It is in the curve fitting toolbox, so you would need that. But there are simple enough ways to integrate a spline.)
I would suggest the simplest thing is a spline integral, then integrating the spline. But depending upon the shape of your integration kernel, a pchip integral may often be a better idea. At the same time, a pchip interpolant will be a lower order approximation, so it too will sometimes be problematic.
Sorry, but it seems to me you are trying to solve a problem without understanding the methods you are using. Would you recommend that someone play around with a table saw, who has never seen one, and has no idea how they work or what to do?
If this is a problem from a class, where you were told to use cumtrapz, then I would hope there would be discussion afterwards about the error that you see, and the source of that error.