You can get this to work more easily by nesting the if function in Google sheets.
For this example, you can put this formula into cell d2 =if(C2<>true, "",if(D2="",Today(),D2))
This formula checks if C2 has been checked. If it hasn't been checked, D2 remains empty. If C2 has been checked, then it looks if there's already a value in D2. If there is not a value in D2, it returns today's date. If there is a value in D2, it returns the value that's already there (the date the box was checked).
Note, you need to turn on iterative calculations in file->settings->calculations and set it to on with at least 1 calculation.