A Stacks stack is a Terraform root module which you can deploy as many times as you have layers.
Terraform CLI workspaces let you deploy the same root module as many times as you have workspaces.
Both allow you to inject different input variable values on different layers or workspaces, respectively.
So it would seem like both are similar, however, the primary goal of Terraform workspaces is to enable testing changes on a separate state before modifying production infrastructure, and HashiCorp explicitly recommends against using workspaces for long-lived parallel deployments of the same root module.
HCP Terraform workspaces are a different feature to Terraform CLI workspaces, and do not compare with Stacks.
Terragrunt and Stacks achieve very similar results with very different strategies.
Both enforce a specific directory structure on your repository. Both generate output code for Terraform to consume.
Terragrunt adds an extra layer of configuration on top of Terraform which lets you define what code it generates. Terragrunt is heavily influenced by Terraform's specifics. It even has special features for AWS.
Stacks is radically simpler in that it's mainly a thin layer of Jinja on top of your Terraform code.
So much so that you can probably use Stacks for other declarative purposes like generating Kubernetes manifests for kubectl to consume, for example.
Terragrunt Stacks is a Terragrunt feature that does not compare with Stacks, and while the word "stacks" is overloaded, Stacks existence precedes that of Terragrunt Stacks.
Both Stacks and CDKTF can be used to achieve the same results, but again with very different approaches.
Where Stacks adds a thin layer of Jinja templating on top of the HCL you already know, CDKTF replaces HCL with one of the imperative programming language it supports. While that can be a good thing if what you want is limitless customizability of your infrastructure set based on imperative logic, we've found that very similar results can be achieved without the complexities CDK for Terraform comes with.
Everything we said above about CDK for Terraform can be said about Pulumi, as they're basically interchangable.
Terraform Cloud Stacks is a HCP Terraform feature that enables orchestrating the deployment of multiple interdependent root modules together. So while the names are the same, HCP Terraform Stacks does not compare with Stacks.
And about the word "stacks" being overloaded again: Stacks was initially released on March 2023, Terraform Cloud Stacks was announced later on October that year.