There is no particular reason that the best cubic fit to a set of points would necessarily go through any one of the points. Or any of the points, for that matter.
The coefficients found by the initial polyfit are correct. If you use calculus to minimize a sum-of-squared-errors then the exact coefficients for a*x^3 + b*x^2 + c*x + d are:
a = 277877287064895803678497781245508451287701450302577725603197360165382121190622565108694426309764317184/967676561079094216428837973317001224011506358024577130586302565149971777681663432622658075733194121375
b = 1852916415006531640389090338694927374455104919960268282259530425480427914727610178876949605838088896512/1612794268465157027381396622195002040019177263374295217643837608583286296136105721037763459555323535625
c = -124339822977430694539770894658562849104244122428885410270576725781909018742659972860509669593383488734469923983117/4255886523331027075957355526839747479471503089061504962660035402629159035356904593401257926517104612275281461248
d = -145467529832635009164572892487692503106182319419912735588393592302278037646945296939262160591083595382042060137663564873/2723767374931857328612707537177438386861761976999363176102422657682661782628418939776805072970946951856180135198720000
assuming that each of the x and y values are converted to their nearest rational representation.
But the generated curve turns around near the last point.
Shrug. When you fit a set of real points to a cubic, then there will be at least one real-valued minima or maxima somewhere, but that "somewhere" is not necessarily going to be anywhere particular in the range that you interpolate over.
Your last point is not very close to your starting point, and the nature of polynomials is that as you get towards the extreme edges of x, the value of the polynomial changes quickly. The extreme point can end up shaping the interpolated a polynomial a lot. If you do a fit over all points except the last one, you will get a quite different shape out.
If you plot(x,y) you will see that in the original x order, you do not have a polynomial: your x start at 0 and go negative and then positive. You get more of a polynomial if you display x in terms of y.