When using .limit on matrix blocks they don't show in live preview
I noticed the same issue with live preview, but using the type property on the Matrix field: Issue with Matrix type property and Live Preview? According to Brandon's answer this is a current bug / limitation of the Matrix field that you have to find a workaround for.

In this case this is rather easy, get all the blocks and use the slice filter to loop over a subset:

{% for serviceBlock in entry.serviceBlocks|slice(0, 2) %}