'--retry N' retries only what curl classifies as transient: a timeout, and HTTP responses 408, 429, 500, 502, 503 and 504. A connection refused, a DNS failure, or a TLS handshake error is treated as a hard error and returns immediately. Waiting for a service to come up with '--retry 10' therefore fails on the first attempt, which is the opposite of the intent.
curl 7.52.0 added '--retry-connrefused' to include connection refused in the retryable set, and curl 7.71.0, released in June 2020, added '--retry-all-errors' which retries regardless of the error. For a readiness check the useful combination is '--retry 10 --retry-all-errors --retry-delay 2 --max-time 60 -sSf'.
The backoff is exponential by default, starting at one second and doubling, capped at ten minutes per wait. '--retry-delay' pins a fixed interval instead, and '--retry-max-time' bounds the total. Be careful combining retries with '-o' on a non-idempotent request, since a POST that timed out may have been processed by the server.