Does Service pack have all the changes in a cumulative update I have always thought that all the changes in the CU's are rolled up into the next services pack.  I recently was looking at changes in SQL 2016 SP2, and SQL 2016 CU15 for SP1.

I was surprised to see that none of the KB in SP1CU15 was mentioned in the SP2.  What am I missing?
According to SQLServerBuilds SP1 CU15 was released after SP2.

SP1 CU15 was released on 2019-05-16, SP2 was released on 2018-04-24. 

Given that from SQL 2017 there will no longer be any service packs, this is no longer relevant moving forwards, but in the past Microsoft would release fixes in parallel for supported service packs. As an example this kb article describes an issue that had a fix that was included in two separate CU's, CU15 for SP1 and CU7 for SP2.

For confirmation of the data on SQLServerBuilds we can check the file details on both SP2 and CU15 SP1

In addition to this as pointed out by David Browne, there is a development and test overhead for all new SP's, meaning an SP does not necessarily contain all fixes in previous CU's by date - this is due to the time taken for finalising and testing the SP.