In the former, two doubles exist (x, and the one pointed to by y). x is allocated on the stack, and y on the heap.
In the latter, only one double exists (x, also pointed to by y). There are no heap allocations involved here.
So, on the face of it, you are correct.
In both cases, there exists one double on the stack, and one double* also on the stack. The difference between the two is that in the first case, there is also a double allocated on the heap (the one allocated by new double(x)). Therefore the first case requires more storage.