An AWS EKS Cluster can be created using the AWS CLI or eksctl commands. And AWS is supporting both of them. Both of them at the end of day creates a EKS cluster.
When to use what? I am not able to find any differences between the two.aws
AWS CLI is an imperative way to do it. With eksctl you can use both imperative and declarative way (e.g. when using yaml-manifests).
In addition, you can create EKS cluster declaratively when using CloudFormation EKS cluster or Terraform AWS EKS module.
What is best for you depends on your situation. For laboratory exploration, it is easiest to use imperative commands. But when you are setting up something like a production environment, you want your changes version controlled in e.g. git - so a declarative way to work is a better fit.
What declarative method to use depends on if you e.g. also provision other AWS resources. It is easiest to use same tool for all your infrastructure, e.g. CloudFormation for everything or Terraform for everything. An advantage with Terraform is that it is available for other cloud providers as well, e.g. both AWS and GCP.