Because in the subscriber, update/delete is done using the primary key....
The actual update/delete query that was executed on the publisher is not executed on the subscriber.
Rows in the subscriber are updated/deleted one-by-one using the primary key in the WHERE clause.
Therefore, primary key is required to identify the row.
Hope this answers your question.
Primary key can be non-clustered.