Debería poder hacer esto en un par de declaraciones sin el uso de un cursor u otro código de procedimiento. Solo asegúrate de que esté todo en una sola transacción:
BEGIN TRANSACTION
INSERT INTO crrsql.dbo.AR_Transactions (
cashier_id,
cust_num,
balance,
transaction_date)
SELECT
100199,
cust_num,
-acct_balance,
DATEADD(MINUTE, -30, current_date)
FROM crrsql.dbo.Customers
WHERE acct_balance <> 0
UPDATE crrsql.dbo.Customers SET acct_balance = 0 WHERE acct_balance <> 0
COMMIT TRANSACTION
Por supuesto, agregue el manejo de errores adecuado y asegúrese de probar esto primero.
Además, modifiqué ligeramente algunos de los nombres de sus tablas y columnas. No quiero entrar en qué convenciones de nomenclatura específicas son mejores que otras, pero al menos al menos se consistente. Si vas a usar guiones bajos, úsalos. Si va a utilizar la notación camel-back, utilícela, pero no las mezcle. Lo mismo ocurre con los nombres de tablas en plural y en singular.