Why is the size of the output of the FFT of a signal is same as the size of the input signal?
To answer the question in your title:

Because it is defined to do exactly that.

Think about it: the DFT is a revertible linear operation on all vectors of the $\mathbb C^N$. In other words, for every vector that you apply the DFT to, there is exactly one vector that is the result, and for every result vector, there is exactly one vector that maps to it.

The operation can only exist on sets of the same dimensionality. And thus, the input and output vectors need to be of the same size.

The fact that you can interpret the DFT of a time sample vector as a frequency sample vector doesn't change that.

Your "why are there two peaks" question can be answered by: because your signal is real valued; real-valued signals always have symmetry in Fourier domain.

The "odd" shape is probably Gibb's/leakage phenomena. That always happens when your signal is not perfectly periodic within a circular repetition of your vector.