That's a good question and I've asked the team about it because it wasn't clear to me either.
In summary: if you'll spin up multiple container (e.g. front end / backend / database), Azure Container Apps is a better choice as it comes with Dapr and it will auto retry the requests and add some telemetry data.
If you just need long running jobs or you don't need multiple containers to communicate with each other, you can go with Azure Container Instances.
Azure Container Instances
Azure Container Instances (ACI) provides a single pod of Hyper-V
isolated containers on demand. It can be thought of as a lower-level
"building block" option compared to Container Apps. Concepts like
scale, load balancing, and certificates are not provided with ACI
containers. For example, to scale to five container instances, you
create five distinct container instances. Azure Container Apps provide
many application-specific concepts on top of containers, including
certificates, revisions, scale, and environments. Users often interact
with Azure Container Instances through other services. For example,
Azure Kubernetes Service can layer orchestration and scale on top of
ACI through virtual nodes. If you need a less "opinionated" building
block that doesn't align with the scenarios Azure Container Apps is
optimizing for, Azure Container Instances is an ideal option.
Azure Container Apps
Azure Container Apps enables you to build serverless microservices
based on containers. Distinctive features of Container Apps include:
Optimized for running general purpose containers, especially for
applications that span many microservices deployed in containers.
Powered by Kubernetes and open-source technologies like Dapr, KEDA,
and envoy. Supports Kubernetes-style apps and microservices with
features like service discovery and traffic splitting. Enables
event-driven application architectures by supporting scale based on
traffic and pulling from event sources like queues, including scale to
zero. Support of long running processes and can run background tasks.
Azure Container Apps doesn't provide direct access to the underlying
Kubernetes APIs. If you require access to the Kubernetes APIs and
control plane, you should use Azure Kubernetes Service. However, if
you would like to build Kubernetes-style applications and don't
require direct access to all the native Kubernetes APIs and cluster
management, Container Apps provides a fully managed experience based
on best-practices. For these reasons, many teams may prefer to start
building container microservices with Azure Container Apps.
source:
https://docs.microsoft.com/en-us/azure/container-apps/compare-options