I guess the main difference is that frameworks like Serverless provide a great experience if you fully buy into their way of doing things (i.e., implement your application assets in the Serverless YAML DSL, etc), whereas LocalStack is a generic platform that works on the API emulation level, hence easily integrates with most tooling out of the box.
Making the switch from Serverless to, say, AWS CDK, or AWS SAM, or Architect framwork may not be as seamless - however, for each of these frameworks you can always run the local emulation natively on LocalStack. This can help reduce the overall vendor lock-in effect that a lot of application development frameworks come with.
In fact, LocalStack also provides an integration with Serverless [0] - among many other tools [1].