The C++ standard allows padding between sub objects (members and bases) of classes. As such, there "can" be padding because the standard allows it. The standard allows the padding because there are cases where that is necessary in order to satisfy the alignment requirement of the members.
The standard doesn't enumerate cases where padding isn't needed. It is entirely up to the language implementation to choose when to pad and when not to as long as the alignment requirements are satisfied.
why would this structure need padding anyway?
There is no practical reason (that I know of) why that class would need padding. However, that is not the only class definition that exists and there are other classes which may need padding.