The main focus of Spark Streaming is stream-batching operation, called micro-batching. This programming model suits many use cases, but not all use cases require real-time stream processing with sub-second latency. For example, a use case such as credit card fraud prevention requires millisecond latency. Hence, the micro-batching programming model is not suited there. (But, the latest version of Spark, 2.4, supports millisecond data latency).
Apache Flink supports millisecond latency and is suited for use cases such as fraud detection and like.