2 Answers
EC2 service itself is available in all AWS regions. However when you create an EC2 instance it is in a specific region and AZ.
A service is considered "regional" when you have to choose a specific region (sometimes zone) in order to deploy resources. Some services are "multi-regional" with the ability of having replicas, or having two (or more) instances of the same resource simultaneously, to provide high-availability. Under the hood, a regional service requires its resources to be specifically hosted by hardware in a particular datacenter of cloud provider.
Each EC2 instance is an independent virtual machine (with operating system) that must be placed on a specific host (the underlying hardware). There are many constraints that make EC2 not being global, including its dependency on storage system. EC2 relies heavily on storage (more specific, on EBS which is on the same infrastructure of S3), which is also a regional service.
Fictitiously, in order to make EC2 become a true global service, AWS somehow has to make the replication of a virtual machine (EC2 entity plus all EBS volumes) replicated from one region to another at lightning-fast speed, which is virtually impossible. Also, they have to find a way to maintain data consistency if your VM is destined to be available on every region around the world, which is another infeasible objective.
You can use EC2 in almost every region of AWS (with some known limitations depend on region’s capability, e.g. a VM family available in a region but not the other), but that doesn’t means EC2 is a global service.
Some example of global services such as: IAM, CloudFront, Route53, etc.
EC2 service itself is available in all AWS regions. However when you create an EC2 instance it is in a specific region and AZ.