Why does an order with virtual-only items have the "processing" status instead of "complete" after placing?

It shows processing after order success.

it should be complete instead.

can anyone has same issue?

Please publish the order’s backend screen.

It is up to a payment method to decide, what state should be assigned to an order after the order is placed.
PayPal Express Checkout method, used by your order, sets the STATE_PROCESSING:

Usually an order has a shipment stage, and the order become completed not when it is just paid, but when it is really completed, including it is shipped to the customer.

If an order consists of virtual-only items, a shipment usually is not needed, and I totally agree with you that the STATE_COMPLETE is more logical state for such orders after its placement.

So it is a Magento issue, and I recommend to report it in the official issue tracker: https://github.com/magento/magento2/issues

Ok . Thank You.